python快速写入hbase_从python写入hbase表(happybase)

我正在运行一个map reduce作业,现在我想在hbase中输入值。我将map reduce作业中的值流放到stdin上,并使用python脚本在happybase上插入(放置)行。

我遇到了各种各样的问题,从python中执行put。据我所知,最近的问题似乎与库兼容性问题有关。错误日志显示iteritems的问题。happybase manual引用了排序查询所需的其他python库,这些库从python 2.7版(我运行的是2.7.6版)开始是不必要的。

有人遇到过类似的问题吗?它们能很容易修复吗?还是建议使用不同的接口?

更多细节

我已经安装了hadoop(2.6.0)和hbase(0.98.10-2/5/2015),并以独立配置运行。它们已经启动了。我可以通过shell与hbase接口,创建表,输入值,然后扫描它们。

我可以在happybase上扫描和打印python中的表,这至少表明连接工作正常。但是put总是失败的。这个简短的示例说明了问题:

为了这个例子,我的表被称为test(在hbase shell中创建)。它有一列f1。hbase(main)> create 't1','f1'

hbase(main)> put 't1','1','f1','hello'

现在是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

更多细节:

节俭是在运行。# hbase thrift start -threadpool

hduser@box> hbase -version

java版本“1.8.0_31”

Java(TM)SE运行时环境(构建1.8.0_31-b13)

Java HotSpot(TM)64位服务器虚拟机(内部版本25.31-b07,混合模式)

错误日志:---------------------------------------------------------------------------

AttributeError Traceback (most recent call last)

in ()

----> 1 table.put('2',{'f1','hey'})

/usr/local/lib/python2.7/dist-packages/happybase/table.pyc in put(self, row, data, timestamp, wal)

437 """

438 with self.batch(timestamp=timestamp, wal=wal) as batch:

--> 439 batch.put(row, data)

440

441 def delete(self, row, columns=None, timestamp=None, wal=True):

/usr/local/lib/python2.7/dist-packages/happybase/batch.pyc in put(self, row, data, wal)

81 value=value,

82 writeToWAL=wal)

---> 83 for column, value in data.iteritems())

84

85 self._mutation_count += len(data)

AttributeError: 'set' object has no attribute 'iteritems'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值