2015-09-03 3 views
3

Я использую Hbase 0.94.18 на AWS EMR. Я планирую использовать 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 использует бережливость1. –

+0

Ahh okkay Спасибо. Я запустил сервер thrift1 и попробую –

1

При использовании «hbase thrift2 start -threadpool» я получаю ту же ошибку.

При использовании «бережливости» (т. Е. Бережливость 1) ошибка исчезает.

Это вызвано доступом к интерфейсу бережливости 2 с использованием эффекта экономности 1 happybase.

0

hbase бережливость 2 удаляет функцию.