mysql处理批量推送任务时候_python使用happybase批量的操作hbase

最近在跑任务的回溯,发现有时候,速度会很慢 ,一开始确定到了 是hbase就起了一个公用的thrift,大家最近也都在导数据,搞得thrift总是挂掉 。 后来在集群中的其他hbase上起了Thrift服务,每个业务用自己的接口,这样能稳定了不少。 既然问题已经到这里了,

最近在跑任务的回溯,发现有时候,速度会很慢 ,一开始确定到了 是hbase就起了一个公用的thrift,大家最近也都在导数据,搞得thrift总是挂掉 。 后来在集群中的其他hbase上起了Thrift服务,每个业务用自己的接口,这样能稳定了不少。

既然问题已经到这里了,就要想方设法介绍链接和频繁的获取数据,回溯任务会涉及到两个批量的任务,一个是hbase的获取网页信息的,另一个是把信息推送到

redis分析队列里面。 关于redis的长连接和批量操作已经完成,现在要改hbase的批量操作。

看了下happybase的文档, 一个是rows ,也就是数据的批量的get,还有一个是batch,这个是批量的操作,类似一个操作链条,相当于我把一系列的动作放到list里面,然后一次性的推到thrift执行。。

from buzz.lib.hbase import hb

#xiaorui.cc

list = ['fffec611be1150a3c6ec47d16243170f',

'fffec64d36e2afb9c801f533555e03d8',

'ffffc8f782fc44d53a05a090b175f7f8',

'ffffcd05483697128e426ac9a5882d4d',

'ffffef6a5889cecfd67e49c4b0a0e3ab',

'fffff003b4e8328a002a09140afdf662',

'fffff0503298c2e8acfa2146f5028f76',

'fffff09d26c34af9e9286b7cfd4354d6',

'fffff0d15acad09af4392520cbb496a5',

'fffff10b7c949bee275d6ee5f2c411c6',

'fffff15c658b773719f6c6482c03c6fe',

'fffff16d18f5fd8ae5a8dfe84ef43b63',

'fffffb9285cb2b875276061bc808a23c',

'fffffbb06b87214a6aad714e86d69d31',

'fffffbb17d235d16ad041992699eba4b',

'fffffbb495afa6cb5e9decd909ff4026',

'fffffbc24f6db511617fb5a1905f1597',

'fffffbcbe880e4cb270dd268e237fc96',

'fffffc499edcbda7a38adf10840c3a6f',

'fffffe66fe54cc66918fa59dd7914841',

'fffffe9249c4c260277884fb5ece92ad',

'fffffe9d05f6cd2d760270947085e970',

'ffffff2b4089a09756bb85b181f9f718',

'ffffffed28fd8493e9dbbe60a3123af3']

print len(list)

for i in list:

print i

hb.get(i, False)

print 'many get'

table = hb.get_table()

columns = ['bz:url', 'src:html']

row = table.rows(list, columns=columns)

happybase 不管是文档还是对于一些异常的处理都要比原生的thrift python api 要强的。

这里在放一个happybase的小demo ,供大家学习。

import happybase

connection = happybase.Connection('h11', compat='0.90')

connection.open()

print connection.tables()

''' connection.create_table(

'mytable',

{'cf1': dict(max_versions=10),

'cf2': dict(max_versions=1, block_cache_enabled=False),

'cf3': dict(), # use defaults

}

)'''

table = connection.table('test')

row = table.row('row1', columns=['data:1'])

print row['data:1']

for key, data in table.scan():

print key, data

connection.close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值