我在AWS EMR上使用Hbase 0.94.18。我打算使用HappyBase,因为它看起来很有前途。不幸的是,我在第一次尝试时遇到了这个问题:
conn = happybase.Connection(port=9200,compat='0.94')
conn.tables()
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.6/site-packages/happybase/connection.py", line 238, in tables
names = self.client.getTableNames()
File "/usr/local/lib/python2.6/site-packages/happybase/hbase/Hbase.py", line 818, in getTableNames
return self.recv_getTableNames()
File "/usr/local/lib/python2.6/site-packages/happybase/hbase/Hbase.py", line 833, in recv_getTableNames
raise x
thrift.Thrift.TApplicationException: Invalid method name: 'getTableNames'
你能帮帮我吗?
答案 0 :(得分:2)
您确定要连接的接口是HBase Thrift1服务吗?它看起来像协议不兼容...
答案 1 :(得分:1)
当使用“hbase thrift2 start -threadpool”时,我得到同样的错误。
当使用“节俭”(即节俭1)时,错误消失。
这是通过使用happybase的thrift 1实现访问thrift 2接口引起的。
答案 2 :(得分:0)
hbase thrift 2已删除该功能。