pyhive -- thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

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

原文地址:https://www.cnblogs.com/Jesse-Li/p/8933776.html