Python连接Hive(基于PyHive)

要想使用python连接hive,首先得下载以下几个包:

 

pip install sasl
pip install thrift
pip install thrift-sasl

pip install PyHive

 

但是我们在安装sasl的时候可能会报错,导致安装不上,这个时候就得去sasl下载地址下载我们所需要的sasl,记得要和我们python版本匹配,我这里选择下载的是sasl‑0.2.1‑cp35‑cp35m‑win32.whl并存放到桌面。

然后打开cmd,进入Desktop目录输入: pip install sasl‑0.2.1‑cp35‑cp35m‑win32.whl (如果没安装wheel记得先安装wheel:pip install wheel)

这样就能成功的安装PyHive了。

  • 下面进行测试,测试代码如下
    from pyhive import hive
    conn = hive.Connection(host='ip地址', port=10000, username='用户名', database='default')
    cursor = conn.cursor()
    cursor.execute('select * from testhive limit 10')
    for result in cursor.fetchall():
        print( result)
    但是报错了:
  • 目前还不知道怎么去解决,上了stackoverflow和github也没有找到合适的解决办法。

 

试过将hive-site.xml中的hive.server2.authentication改为NOSASL,但是还是不行。

Python连接Hive(基于PyHive)_第1张图片

也试过在ubuntu中装libsasl2-modules,也还是不行。

 

有网友指出,修改hive.server2.authentication改为NOSASL,然后在hive.connection()的传入参数中也加入auth='NOSASL',这样就能够链接上了,最后关闭链接即可。(感谢@toolate @至此无妄 )

 

 

以下是一些查阅的资料,希望对各位有帮助:

https://github.com/dropbox/PyHive/issues/161

https://github.com/dropbox/PyHive/issues/32

https://github.com/cloudera/impyla/issues/267

 

通过impyla也可以链接连接hive还是,具体见我这篇博文:https://blog.csdn.net/a6822342/article/details/80844072

 

你可能感兴趣的:(hive,python,sasl,hive)