无法使用python-thriftpy.transport.TTTransportException的happybase包操作HBase

无法使用python-thriftpy.transport.TTTransportException的happybase包操作HBase,python,python-2.7,hbase,happybase,Python,Python 2.7,Hbase,Happybase,我尝试连接到HBase,并通过python的happybase包对其进行操作 下面是我用来连接到HBase的代码:(打印行帮助我找到程序停止的位置) 但是在执行代码时,我得到了一个异常(thriftpy.transport.ttTransportException): 0 1. 2. 回溯(最近一次呼叫最后一次): 文件“test2.py”,第10行,在 表.put('1',{'latitude':'11','latitude':'22'}) 文件“/usr/lib/python2.7/site

我尝试连接到HBase,并通过python的happybase包对其进行操作 下面是我用来连接到HBase的代码:(打印行帮助我找到程序停止的位置)

但是在执行代码时,我得到了一个异常(thriftpy.transport.ttTransportException):

0
1.
2.
回溯(最近一次呼叫最后一次):
文件“test2.py”,第10行,在
表.put('1',{'latitude':'11','latitude':'22'})
文件“/usr/lib/python2.7/site packages/happybase/table.py”,第464行,输入
batch.put(行、数据)
文件“/usr/lib/python2.7/site packages/happybase/batch.py”,第137行,在退出时__
self.send()
文件“/usr/lib/python2.7/site packages/happybase/batch.py”,第60行,在send中
self._table.connection.client.mutateRows(self._table.name,bms,{})
文件“/usr/lib64/python2.7/site packages/thriftpy/thrift.py”,第198行,在
返回自我记录(api)
文件“/usr/lib64/python2.7/site packages/thriftpy/thrift.py”,第210行,in_recv
fname,mtype,rseqid=self.\u iprot.read\u message\u begin()
文件“thriftpy/protocol/cybin/cybin.pyx”,第429行,在cybin.TCyBinaryProtocol.read_message_begin(thriftpy/protocol/cybin/cybin.c:6325)中
文件“thriftpy/protocol/cybin/cybin.pyx”,第60行,在cybin.read_i32中(thriftpy/protocol/cybin/cybin.c:1546)
文件“thriftpy/transport/buffered/cybuffered.pyx”,第65行,位于thriftpy.transport.buffered.cybufferedtransport.c_read(thriftpy/transport/buffered/cybuffered.c:1881)
文件“thriftpy/transport/buffered/cybuffered.pyx”,第69行,位于thriftpy.transport.buffered.cybuffered.TCyBufferedTransport.read_trans(thriftpy/transport/buffered/cybuffered.c:1948)
文件“thriftpy/transport/cybase.pyx”,第61行,位于thriftpy.transport.cybase.TCyBuffer.read_trans(thriftpy/transport/cybase.c:1472)中
文件“/usr/lib64/python2.7/site packages/thriftpy/transport/socket.py”,第125行,已读
消息=“TSocket读取0字节”)
thriftpy.transport.ttTransportException:ttTransportException(message='TSocket read 0 bytes',type=4)
我不知道问题出在哪里。

这是错误
connection=happybase.connection('197.12.8.2',2181)

您应该连接thrift服务器,服务器端口默认为9090,而不是2181,这是zookeeper的端口
connection=happybase.connection('197.12.8.2',2181)

您应该连接thrift服务器,服务器端口默认为9090,而不是2181,它是zookeeper的端口

import happybase

connection = happybase.Connection('197.12.8.2',2181)
print('0')
connection.open()
print('1')
table = connection.table('customerLocations')
print('2')

table.put('1', {'latitude': '11','longitude': '22'})
print('3')
row = table.row('0')
print('4')
print(row)
print('5')
0
1
2
Traceback (most recent call last):
  File "test2.py", line 10, in <module>
    table.put('1', {'latitude': '11','longitude': '22'})
  File "/usr/lib/python2.7/site-packages/happybase/table.py", line 464, in put
    batch.put(row, data)
  File "/usr/lib/python2.7/site-packages/happybase/batch.py", line 137, in __exit__
    self.send()
  File "/usr/lib/python2.7/site-packages/happybase/batch.py", line 60, in send
    self._table.connection.client.mutateRows(self._table.name, bms, {})
  File "/usr/lib64/python2.7/site-packages/thriftpy/thrift.py", line 198, in _req
    return self._recv(_api)
  File "/usr/lib64/python2.7/site-packages/thriftpy/thrift.py", line 210, in _recv
    fname, mtype, rseqid = self._iprot.read_message_begin()
  File "thriftpy/protocol/cybin/cybin.pyx", line 429, in cybin.TCyBinaryProtocol.read_message_begin (thriftpy/protocol/cybin/cybin.c:6325)
  File "thriftpy/protocol/cybin/cybin.pyx", line 60, in cybin.read_i32 (thriftpy/protocol/cybin/cybin.c:1546)
  File "thriftpy/transport/buffered/cybuffered.pyx", line 65, in thriftpy.transport.buffered.cybuffered.TCyBufferedTransport.c_read (thriftpy/transport/buffered/cybuffered.c:1881)
  File "thriftpy/transport/buffered/cybuffered.pyx", line 69, in thriftpy.transport.buffered.cybuffered.TCyBufferedTransport.read_trans (thriftpy/transport/buffered/cybuffered.c:1948)
  File "thriftpy/transport/cybase.pyx", line 61, in thriftpy.transport.cybase.TCyBuffer.read_trans (thriftpy/transport/cybase.c:1472)
  File "/usr/lib64/python2.7/site-packages/thriftpy/transport/socket.py", line 125, in read
    message='TSocket read 0 bytes')
thriftpy.transport.TTransportException: TTransportException(message='TSocket read 0 bytes', type=4)