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