我正在尝试从hbase使用python读取数据。我安装了thrift,并生成了gen-py文件,然后将其移动到python库:〜/ .local / lib / python2.7 / site-packages /
hbase thrift服务器位于192.168.15.116:39090。是开始了。
我的代码在服务器192.168.15.146中。在这台机器上,我可以使用hbase shell命令来读取hbase数据。 这是我的Python代码:
#! /usr/bin/env python
from thrift import Thrift
from thrift.transport import TSocket, TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
transport = TSocket.TSocket('192.168.15.116', 39090)
transport.setTimeout(5000)
#transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Hbase.Client(protocol)
transport.open()
print(client.getTableNames())
一切都好,但是最后一行,这是错误:
Traceback (most recent call last):
File "test01.py", line 24, in <module>
client.getTableNames()
File "~/.local/lib/python2.7/site-packages/hbase/Hbase.py", line 788, in getTableNames
return self.recv_getTableNames()
File "~/.local/lib/python2.7/site-packages/hbase/Hbase.py", line 803, in recv_getTableNames
raise x
thrift.Thrift.TApplicationException: Internal error processing getTableNames
我用谷歌搜索但无法找到解决此问题的方法,有人能给我一些帮助吗? 提前谢谢!
答案 0 :(得分:0)
我不确定但是在快速查看代码之后,服务器上的处理程序/处理器代码似乎会引发意外异常。意外的含义:既不是旧行的,也不是IDL文件中声明的异常之一。
在这种情况下,建议是查看HBase,这是否是已知问题等等。