하이브가 "g"클러스터에 설치되었다고 가정하십시오. 골드 클러스터에 액세스 할 권한이 없습니다. 나는 "s"클러스터에서 파이썬 개발 작업을하고 있습니다. "s"클러스터에서 하이브에 액세스하여 쿼리를 실행할 수 있습니다.파이썬 하이브 : thrift.transport.TTransport.TTransportException : 없음
"s"클러스터에서 실행되는 Python 스크립트에서 하이브에 연결하는 코드는 다음과 같습니다.
some_table
은 이미 하이브에있는 테이블입니다. 몇 가지 결과를 얻으려면 간단한 select * from some_table
명령을 실행하고 싶습니다.
"연결 성공"이 인쇄 된 후에 아래 오류가 표시됩니다. 연결이 성공했다고 가정합니다.
Traceback (most recent call last):
File "hiveConnect.py", line 30, in <module>
row = client.execute("SELECT * FROM some_table")
File "/usr/lib/hive/lib/py/hive_service/ThriftHive.py", line 68, in execute
self.recv_execute()
File "/usr/lib/hive/lib/py/hive_service/ThriftHive.py", line 79, in recv_execute
(fname, mtype, rseqid) = self._iprot.readMessageBegin()
File "/usr/lib/hive/lib/py/thrift/protocol/TBinaryProtocol.py", line 137, in readMessageBegin
name = self.trans.readAll(sz)
File "/usr/lib/hive/lib/py/thrift/transport/TTransport.py", line 58, in readAll
chunk = self.read(sz-have)
File "/usr/lib/hive/lib/py/thrift/transport/TTransport.py", line 155, in read
self.__rbuf = StringIO(self.__trans.read(max(sz, self.DEFAULT_BUFFER)))
File "/usr/lib/hive/lib/py/thrift/transport/TSocket.py", line 94, in read
raise TTransportException('TSocket read 0 bytes')
thrift.transport.TTransport.TTransportException: None
이 코드에서 내가 뭘 잘못하고 있니? 서버 이름과 포트를 사용하여 하이브에 연결하는 동안 오류가 발생하지 않았으므로 모든 것이 잘되고 하이브 연결이 문제가 아님을 전제하고 있습니다. 어떤 도움을 주셔서 감사합니다.