嗨,我想使用python库pyhive和pyodbc连接到蜂巢:
conn = hive.Connection(host="hostname",port=10001,username="********",database="default",auth='KERBEROS',kerberos_service_name="hive")
我得到的错误
TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
然后当我使用pyodbc时
conn_string="""DSN=%s; Host=%s, Port=%d, Database=default; AuthMech=3;UseSASL=1; UID=%s; PWD=%s; SSL=1;AllowSelfSignedServerCert=1"""% (cfg['DSN'], cfg['host'], cfg['port'],cfg['username'], cfg['password'])
conn = pyodbc.connect(conn_string, autocommit=True)
这是我得到的错误,如果有人成功通过pyodbc,pyhive成功地将python与hive连接起来,请帮助
Hive托管在Cloudera中。
答案 0 :(得分:0)
pyhive需要sasl依赖项
在Linux上由yum / apt安装
在Windows上安装软件包cyrus-sasl后,需要配置sasl2目录
位于site-packages/sasl
或Library/bin/
方法1:将sasl2文件夹复制到C:\ CMU \ bin \
方法2:添加注册表字符串
HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library\SearchPath
C:\Users\cdarling\Miniconda3\envs\hive\Library\bin\sasl2