gpt4 book ai didi

python - Pyhive、SASL 和 Python 3.5

转载 作者:可可西里 更新时间:2023-11-01 14:51:33 27 4
gpt4 key购买 nike

我尝试按照此处所述设置配置单元连接:How to Access Hive via Python?使用 hive 。与 python 3.5.2 的连接(安装在 cloudera Linux BDA 上)但 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)

最佳答案

我们(应该说是 IT 团队)找到了解决方案

python包thrift(到0.10.0版)和PyHive(到0.3.0版)的升级不知道为什么我们用的版本不是最新的。

添加了以下内容:

<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value>
</property>

Cloudera Manager 中的以下 Hive 配置参数:

hive-site.xml 的 HiveServer2 高级配置片段(安全阀)hive-site.xml 的 Hive 客户端高级配置片段(安全阀)是 HUE 工作所必需的

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()

工作没有问题/错误。

最好的,汤姆

关于python - Pyhive、SASL 和 Python 3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44522797/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com