Я установил Cloudera Manager Express 5.9.0, установленный HBase, с сервером Thrift, работающим на порту 9090 на CentOS 7.3 в VirtualBox vm.Подключиться к Hbase из Python и happybase/Thrift
Пожалуйста, помогите разобраться, почему я не могу успешно взаимодействовать через happybase или помочь определить следующие шаги для продолжения.
Я опытный Java-программист, изучая Python. У меня есть опыт использования Hbase из Java с использованием собственного интерфейса, хотя и не в этой конкретной среде.
- Я подтверждено, что я могу использовать Hbase оболочку для создания таблиц, вставки данных и т.д.
- Я подтверждено, что 9090 (бережливость) слушает и принимает подключения.
- Я думаю, что я подтвердил, что сервер Thrift работает с теми же настройками протокола/транспорта, что и параметры соединения happybase.
Python скрипт взят практически прямо из happybase МЕТОДИЧЕСКИЕ:
import happybase
connection = happybase.Connection(host='localhost',port=9090,transport='buffered', protocol='compact')
connection.create_table('mytable',
{'cf1': dict(max_versions=10),
'cf2': dict(max_versions=1, block_cache_enabled=False),
'cf3': dict(), # use defaults
}
)
Сообщение об ошибке, которое я не могу найти большую ссылку для:
[[email protected] ~]# python testhbase.py
Traceback (most recent call last):
File "testhbase.py", line 10, in <module> 'cf3': dict(), # use defaults
File "build/bdist.linux-x86_64/egg/happybase/connection.py", line 311, in create_table
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 "/usr/lib64/python2.7/site-packages/thriftpy/protocol/compact.py", line 147, in read_message_begin % proto_id)
thriftpy.protocol.exc.TProtocolException: TProtocolException(type=4)
[[email protected] ~]#
У меня есть Thift менеджер веб-службы, работающие на порт 9095, который сообщает:
HBase Version 1.2.0-cdh5.9.0, rUnknown HBase version and revision
Thrift Impl Type threadpool Thrift RPC engine implementation type chosen by this Thrift server
Compact Protocol true Thrift RPC engine uses compact protocol
Framed Transport false Thrift RPC engine uses framed transport
Любой он lp очень ценится. Спасибо.
вы уверены, что бережливость 1 (не thrift2) демон используется, с правом протокола и транспорта? –
Wouter - ставка, что вы правы. Я не знал о различиях Thrift1/2 и отсутствии поддержки HappyBase от Thrift². Я отвечу, если вы опубликуете ответ. – starvingmind