我试着设置一个蜂箱连接,如下所述:How to Access Hive via Python?使用hive。连接python3.5.2(安装在cloudera上),但是SASL包似乎造成了问题。我在一个论坛上看到SASL只与2.7 python兼容。是那么回事吗?我错过了什么/做错了什么?
from pyhive import hive
conn = hive.Connection(host="myserver", port=10000)
import pandas as pd错误消息
TTransportException Traceback (most recent call last)
in ()
1 from pyhive import hive
2 #conn = hive.Connection(host="myserver", port=10000)
----> 3 conn = hive.Connection(host="myserver")
4 import pandas as pd
/opt/anaconda3/lib/python3.5/site-packages/pyhive/hive.py in init(self, host, port, username, database, auth, configuration)
102
103 try:
--> 104 self._transport.open()
105 open_session_req = ttypes.TOpenSessionReq(
106 client_protocol=protocol_version,
/opt/anaconda3/lib/python3.5/site-packages/thrift_sasl/init.py in open(self)
70 if not ret:
71 raise TTransportException(type=TTransportException.NOT_OPEN,
---> **72 message=("Could not start SASL: %s" % self.sasl.getError()))**
73
74 # Send initial response
TTransportException: TTransportException(message="Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found'", type=1)发布于 2017-06-20 14:11:07
我们(我应该说,IT团队)找到了解决方案。
packages的升级--省吃俭用(升级到0.10.0版)和PyHive (0.3.0版)--不知道为什么我们使用的版本不是最新版本。
增加了以下内容:
<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value>
</property>到Cloudera中的以下Hive配置参数:
HiveServer2高级配置段(安全阀)用于hive-site.xml Hive客户端高级配置段(安全阀),用于hive-site.xml,这样色调才能正常工作
from pyhive import hive
conn = hive.Connection(host="myserver", auth='NOSASL')
import pandas as pd
import sys
df = pd.read_sql("SELECT * FROM my_table", conn)
print(sys.getsizeof(df))
df.head()工作时没有问题/错误。
最好的,汤姆
发布于 2017-06-13 13:27:03
检查是否安装了所有依赖项:
gcc-c++
python-devel.x86_64
cyrus-sasl-devel.x86_64(假设你在窗户上)
https://stackoverflow.com/questions/44522797
复制相似问题