使用pyhive和pyodbc从Windows连接到Hive

时间:2018-11-22 14:49:05

标签: python hive

嗨,我想使用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中。

1 个答案:

答案 0 :(得分:0)

pyhive需要sasl依赖项

在Linux上由yum / apt安装

在Windows上安装软件包cyrus-sasl后,需要配置sasl2目录
位于site-packages/saslLibrary/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