Pyhive 远程连接hive出现问题:
from pyhive import hive import pandas as pd #Create Hive connection conn = hive.Connection(host="172.18.33.32", port=10000, username="hadoop", auth="NOSASL", database="log") # Read Hive table and Create pandas dataframe df = pd.read_sql("SELECT count(*) FROM record", conn) print(df.head())
错误:
Traceback (most recent call last): File "HiveConnect.py", line 4, in <module> conn = hive.Connection(host="172.18.33.32", port=10000, username="hadoop", auth="NOSASL") File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packagespyhivehive.py", line 168, in __init__ response = self._client.OpenSession(open_session_req) File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packagesTCLIServiceTCLIService.py", line 187, in OpenSession return self.recv_OpenSession() File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packagesTCLIServiceTCLIService.py", line 199, in recv_OpenSession (fname, mtype, rseqid) = iprot.readMessageBegin() File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packages hriftprotocolTBinaryProtocol.py", line 148, in readMessageBegin name = self.trans.readAll(sz) File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packages hrift ransportTTransport.py", line 60, in readAll chunk = self.read(sz - have) File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packages hrift ransportTTransport.py", line 162, in read self.__rbuf = BufferIO(self.__trans.read(max(sz, self.__rbuf_size))) File "C:Usersv-lijessAppDataLocalProgramsPythonPython36-32libsite-packages hrift ransportTSocket.py", line 132, in read message='TSocket read 0 bytes') thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
解决方案:hive-site.xml 增加下面属性,然后重启hive