为什么连接没有建立并导致
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
我正在尝试使用 thrift 从 python 连接到 hbase。我正在开发一个 cloudera cdh5.14 集群,并且 thrift 服务器正在集群上运行。hbase 版本 1.2.0
已经三周了,我已经尝试了以下方法:通过搜索,我知道它与节俭有关,而与 python、happybase 或 hbase 无关。它是一个 kerberized 集群,并在第一个链接中提到的协议和传输模式进行了更改:我想如果也使用 happybase,该解决方案应该可以工作。1) Cloudera/CDH v6.1.x + Python HappyBase v1.1.0: TTransportException(type=4, message='TSocket read 0 bytes')
2) TSocket 读取 0 字节 - happybase 版本 0.8
4) TSocket 读取 0 字节用 python 访问 hive
5) TTransportException: TSocket 在通过 Python 访问 Hive 时读取 0 个字节
6) python thrift 错误```TSocket read 0 bytes```
7)带有消息“TSocket 读取 0 字节”的未捕获异常“TTransportException”
8) TSocket 读取 0 字节 Apache Thrift MongoDB
from thrift.transport import TSocket
from thrift.protocol import TCompactProtocol
from thrift.transport.TTransport import TFramedTransport
from hbase import Hbase
(host, port) = ("cluster.hostname", 9090)
transport = TFramedTransport(TSocket.TSocket(host, port))
protocol = TCompactProtocol.TCompactProtocol(transport)
client = Hbase.Client(protocol)
transport.open()
print(client.getTableNames())
错误片段与上述链接中的大多数内容相似
Traceback (most recent call last):
File "testing.py", line 14, in <module>
print(client.getTableNames())
File "/home/caston/final_attempt/gen-py/hbase/Hbase.py", line 786, in getTableNames
return self.recv_getTableNames()
File "/home/caston/final_attempt/gen-py/hbase/Hbase.py", line 796, in recv_getTableNames
(fname, mtype, rseqid) = self._iprot.readMessageBegin()
File "/usr/lib64/python2.7/site-packages/thrift/protocol/TCompactProtocol.py", line 310, in readMessageBegin
proto_id = self.__readUByte()
File "/usr/lib64/python2.7/site-packages/thrift/protocol/TCompactProtocol.py", line 289, in __readUByte
result, = unpack('!B', self.trans.readAll(1))
File "/usr/lib64/python2.7/site-packages/thrift/transport/TTransport.py", line 58, in readAll
chunk = self.read(sz - have)
File "/usr/lib64/python2.7/site-packages/thrift/transport/TTransport.py", line 276, in read
self.readFrame()
File "/usr/lib64/python2.7/site-packages/thrift/transport/TTransport.py", line 280, in readFrame
buff = self.__trans.readAll(4)
File "/usr/lib64/python2.7/site-packages/thrift/transport/TTransport.py", line 58, in readAll
chunk = self.read(sz - have)
File "/usr/lib64/python2.7/site-packages/thrift/transport/TSocket.py", line 120, in read
message='TSocket read 0 bytes')
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
任何形式的帮助将不胜感激!