python无法连接hiveserver2

python无法连接hiveserver2,python,hive,Python,Hive,我试着用这个例子 但会得到以下错误: /usr/lib/python2.7/dist-packages/pkg_resources.py:1031: UserWarning: /home/dsnadmin/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .

我试着用这个例子 但会得到以下错误:

/usr/lib/python2.7/dist-packages/pkg_resources.py:1031: UserWarning: /home/dsnadmin/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
  warnings.warn(msg, UserWarning)
Traceback (most recent call last):
  File "hs2.py", line 8, in <module>
    database='default') as conn:
  File "build/bdist.linux-x86_64/egg/pyhs2/__init__.py", line 7, in connect
  File "build/bdist.linux-x86_64/egg/pyhs2/connections.py", line 46, in __init__
  File "build/bdist.linux-x86_64/egg/pyhs2/cloudera/thrift_sasl.py", line 66, in open
thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found
有人能帮助解决这个问题吗?非常感谢。

操作系统版本:Ubuntu 14.04.1 配置单元版本:apache-Hive-1.2.0
SASL版本:SASL-0.1.3

Thrift版本:Thrift-0.9.1
如果缺少某些依赖项,请确保安装了
cyrus sasl-devel
cyrus sasl gssapi

在基于RHEL的发行版上:

sudo-yum安装cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl平原

。。。或者在基于Debian的发行版上:

sudo apt get install sasl2 bin libsasl2-2 libsasl2 dev libsasl2模块


根据@Kennedy,如果使用gssapi进行身份验证,还应添加
libsasl2模块gssapi mit
包。

1在hive-site.xml中,设置配置如下:

<property>
   <name>hive.server2.authentication</name>
   <value>NOSASL</value>
</property>
with pyhs2.connect(host='localhost',
                   port=10000,
                   authMechanism="NOSASL",
                   user='user',
                   password='password',
                   database='default') as conn:

请注意用户名和密码不能为空,在连接到pyhs2时添加任何用户名和密码

以上答案在我的情况下不起作用,我也尝试过其他答案。 最后,我解决了我的问题(不知道它是否适合你)

执行

export LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib:$LD_LIBRARY_PATH
在运行脚本之前


我原来的
LD\u LIBRARY\u路径
/usr/local/lib:/usr/lib64
设置以下环境变量对我有效:

SASL_PATH=/usr/lib/x86_64-linux-gnu/sasl2 

这是针对Ubuntu的

您的HiveServer2是否已被加密,还是在一个安全的集群中?在hive-site.xml中,我设置了hive.server2.authenticationNone这只是一台您无法连接的机器,还是所有的机器?我解决了一个问题,比如您将身份验证设置为NOSASL。然而,对于Ubuntu服务器,它们没有
cyrus sasl-devel
cyrus sasl gssapi
。我只是找到并安装了一些可能的软件包:
sasl2-bin
libsasl2-2
libsasl2-dev
谢谢,添加了两种发行版软件包类型的软件包详细信息。如果这看起来是正确的,请接受这个答案。很抱歉,在安装了这些软件包之后,错误仍然存在……pyhs2 lib for python to connect hiveserver2是否仅适用于基于RHEL的发行版?应该从pip安装,不是吗
sudopip安装pyhs2
那么你就都准备好了吗?通常你想用``来包围你的代码,比如
some_code
,以提高可读性
SASL_PATH=/usr/lib/x86_64-linux-gnu/sasl2