小编Ben*_*Man的帖子

从python(happybase)写入hbase表

我正在运行map-reduce作业,现在我想在hbase中输入值.我通过stdin从map-reduce作业中传输值,并有一个python脚本,在happybase上插入(放置)行.

我遇到了各种各样的问题,从python执行put.根据我的理解,最近的问题似乎与库兼容性问题有关.错误日志显示iteritems的问题.该happybase手册是指对排序的查询需要额外的Python库,这是没有必要从Python版本2.7(我运行2.7.6)开始.

有没有人遇到类似的问题?它们可以轻松修复,还是建议使用不同的界面?

更多细节

我在独立配置中安装并运行了hadoop(2.6.0)和hbase(0.98.10 - 2/5/2015).他们开始了.我可以通过shell与hbase接口,创建表,输入值并扫描它们.

我可以通过happybase扫描并打印python中的表格,至少显示连接是否有效.但总是失败.这个简短的例子说明了问题:

为了这个例子,我的表叫做test(在hbase shell中创建).它有一列f1.

hbase(main)> create 't1','f1'
hbase(main)> put 't1','1','f1','hello'
Run Code Online (Sandbox Code Playgroud)

现在python:

>>> import happybase
>>> connection = happybase.Connection('localhost')
>>> table = connection.table('t1')
>>> print(table.row('1')) # {'f1:': 'hello'}
>>> table.put('2',{'f1','hey'}) # fails, see log
Run Code Online (Sandbox Code Playgroud)

更多细节:

节俭正在运行.

# hbase thrift start -threadpool


hduser@box> hbase -version
Run Code Online (Sandbox Code Playgroud)

java版"1.8.0_31"Java(TM)SE运行时环境(版本1.8.0_31-b13)Java HotSpot(TM)64位服务器VM(版本25.31-b07,混合模式)

错误日志:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-15-56dab4cd31ef> in <module>()
----> 1 table.put('2',{'f1','hey'})

/usr/local/lib/python2.7/dist-packages/happybase/table.pyc in put(self, row, data, timestamp, wal) …
Run Code Online (Sandbox Code Playgroud)

python hadoop hbase thrift happybase

2
推荐指数
1
解决办法
7178
查看次数

标签 统计

hadoop ×1

happybase ×1

hbase ×1

python ×1

thrift ×1