python使用happybase批量的操作hbase
Jun 07, 2016 pm 04:39 PM最近在跑任务的回溯,发现有时候,速度会很慢 ,一开始确定到了 是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()
原文地址:python使用happybase批量的操作hbase, 感谢原作者分享。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les avantages et les inconvénients des modèles ?

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM

Comment enregistrer la fonction d'évaluation
