2015-09-03 67 views
3

我在AWS EMR上使用Hbase 0.94.18。我打算使用HappyBase,因爲它看起來非常有前途。不幸的是我在第一次嘗試時遇到了這個問題:AWS Hbase:無效的方法名稱:'getTableNames'

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' 

你能幫我嗎?

回答

1

您確定要連接的接口是HBase Thrift1服務嗎?它看起來像一個協議不兼容...

+0

它的Thrift2接口 –

+1

你有它。 happybase使用thrift1。 –

+0

Ahh okkay謝謝。我將啓動thrift1服務器並嘗試 –

1

當使用「hbase thrift2啓動-threadpool」我得到相同的錯誤。

當使用「節儉」(即節儉1)時,錯誤消失。

這是由使用happybase的thrift 1實現訪問節儉2接口造成的。

0

hbase thrift 2刪除了該功能。