国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python 調用HBase的簡單實例

2020-02-23 04:12:57
字體:
來源:轉載
供稿:網友

新來的一個工程師不懂HBase,java不熟,python還行,我建議他那可以考慮用HBase的thrift調用,完成目前的工作。

首先,安裝thrift

下載thrift,這里,我用的是thrift-0.7.0-dev.tar.gz 這個版本

tar xzf thrift-0.7.0-dev.tar.gzcd thrift-0.7.0-devsudo ./configure --with-cpp=no --with-ruby=nosudo makesudo make install

然后,到HBase的源碼包里,找到

src/main/resources/org/apache/hadoop/hbase/thrift/

執行

thrift --gen py Hbase.thrift
mv gen-py/hbase/ /usr/lib/python2.4/site-packages/ (根據python版本可能有不同)

我這里寫了些調用的腳本,供大家參考

from unittest import TestCase, mainfrom thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocolfrom hbase import Hbasefrom hbase.ttypes import ColumnDescriptor, Mutation, BatchMutationclass HBaseTester:  def __init__(self, netloc, port, table="staftesttable"):    self.tableName = table    self.transport = TTransport.TBufferedTransport(      TSocket.TSocket(netloc, port))    self.protocol = TBinaryProtocol.TBinaryProtocol(self.transport)    self.client = Hbase.Client(self.protocol)    self.transport.open()    tables = self.client.getTableNames()    if self.tableName not in tables:      self.__createTable()  def __del__(self):    self.transport.close()  def __createTable(self):    name = ColumnDescriptor(name='name')    foo = ColumnDescriptor(name='foo')    self.client.createTable(self.tableName,                [name,foo])    def put(self,key,name,foo):    name = Mutation(column="name:v", value=name)    foo = Mutation(column="foo:v",value=foo)        self.client.mutateRow(self.tablename,key,[name,foo])    def scanner(self,column):    scanner = client.scannerOpen(self.tablename,"",[column])				r = client.scannerGet(scanner)				result= []    while r:     print r[0]     result.append(r[0])     r = client.scannerGet(scanner)    print "Scanner finished"    return result                      class TestHBaseTester(TestCase):    def setUp(self):    self.writer = HBaseTester("localhost", 9090)  def tearDown(self):    name = self.writer.tableName    client = self.writer.client    client.disableTable(name)    client.deleteTable(name)  def testCreate(self):    tableName = self.writer.tableName    client = self.writer.client    self.assertTrue(self.writer.tableName in client.getTableNames())    columns =['name:','foo:']    for i in client.getColumnDescriptors(tableName):      self.assertTrue(i in columns)        def testPut(self):    self.writer.put("r1","n1","f1")    self.writer.put("r2","n2","f2")    self.writer.put("r3","n3","")    self.writer.scanner("name:")     if __name__ == "__main__":  main()

以上這篇python 調用HBase的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临漳县| 大庆市| 丹阳市| 玉树县| 高碑店市| 阳山县| 朝阳区| 湛江市| 舟曲县| 进贤县| 汨罗市| 哈密市| 松原市| 方山县| 南和县| 于都县| 安化县| 永胜县| 石家庄市| 海原县| 乾安县| 葫芦岛市| 辰溪县| 海丰县| 莆田市| 福贡县| 聂拉木县| 靖安县| 日喀则市| 富阳市| 汝阳县| 通江县| 和龙市| 五家渠市| 正阳县| 宝鸡市| 溆浦县| 南通市| 本溪市| 大理市| 遂宁市|