pyhive连接hive(失败)
一、安装pyhive
pip install sasl(需要来下载至本地安装:https://download.lfd.uci.edu/pythonlibs/q4hpdf1k/sasl-0.2.1-cp37-cp37m-win_amd64.whl)
pip install thrift
pip install thrift-sasl
pip install PyHive
二、编码
#!/usr/bin/env python # -*- coding: utf-8 -*- from pyhive import hive class PyHive(object): def __init__(self): self.host = 'node06.research.com' self.port = 10000 self.username = 'root' self.database = 'default' self.conn_hive() def conn_hive(self): conn = hive.Connection(host=self.host, port=self.port, username=self.username, database=self.database) return conn.cursor() def inst_hive(self): pass def select_hive(self, table): return self.conn_hive().execute("select * from " + table + " limit 10") def close_conn(self): return self.conn_hive().close() if __name__ == "__main__": test_hie = PyHive() try: result = test_hie.select_hive('default.kylin_sales') for res in result: print(res) except ConnectionError as e: print(e) finally: test_hie.close_conn()
三、异常
Traceback (most recent call last): File "D:/WorkSpace/Python/PyHive/conn_hive.py", line 31, in <module> test_hie = PyHive() File "D:/WorkSpace/Python/PyHive/conn_hive.py", line 14, in __init__ self.conn_hive() File "D:/WorkSpace/Python/PyHive/conn_hive.py", line 17, in conn_hive conn = hive.Connection(host=self.host, port=self.port, username=self.username, database=self.database) File "C:\Anaconda3\lib\site-packages\pyhive\hive.py", line 192, in __init__ self._transport.open() File "C:\Anaconda3\lib\site-packages\thrift_sasl\__init__.py", line 79, in open message=("Could not start SASL: %s" % self.sasl.getError())) thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2' Process finished with exit code 1
最终没有找到解决方法。