gpt4 book ai didi

python - 从 Python 和 happybase/Thrift 连接到 Hbase

转载 作者:可可西里 更新时间:2023-11-01 16:40:31 24 4
gpt4 key购买 nike

我已经安装了 Cloudera Manager Express 5.9.0 安装了 HBase,Thrift 服务器在 VirtualBox 虚拟机中的 CentOS 7.3 上的端口 9090 上运行。

请帮助找出我无法通过 happybase 成功连接的原因,或者帮助确定下一步要执行的操作。

我是一名经验丰富的 Java 程序员,正在学习 Python。我有使用本地接口(interface)从 Java 使用 Hbase 的经验,尽管不是在这个特定环境中。

  • 我已验证我可以使用 hbase shell 创建表、插入数据等。
  • 我已验证 9090 (thrift) 正在监听并接受连接。
  • 我想我已经验证 Thrift 服务器正在使用与 happybase 连接参数相同的协议(protocol)/传输设置运行。

几乎直接取自 happybase howto 的 Python 脚本:

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
}
)

错误消息,我找不到很好的引用:

[root@data1 ~]# 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)
[root@data1 ~]#

我有 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

非常感谢任何帮助。谢谢。

最佳答案

Happybase 仅支持 Thrift1。

对于使用 Thrift2 的 hbase 的 python 支持,试试这个: https://github.com/apache/hbase/blob/master/hbase-examples/src/main/python/thrift2/DemoClient.py

关于python - 从 Python 和 happybase/Thrift 连接到 Hbase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41681432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com