新来的一个工程师不懂HBase,java不熟,python还行,我建议他那可以考虑用HBase的thrift调用,完成目前的工作。

首先,安装thrift
下载thrift,这里,我用的是thrift-0.7.0-dev.tar.gz 这个版本
tar xzf thrift-0.7.0-dev.tar.gz cd thrift-0.7.0-dev sudo ./configure --with-cpp=no --with-ruby=no sudo make sudo 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, main
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation
class 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的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# python
# hbase
# python利用thrift服务读取hbase数据的方法
# python hbase读取数据发送kafka的方法
# 通用MapReduce程序复制HBase表数据
# 在php的yii2框架中整合hbase库的方法
# HBASE 常用shell命令
# 增删改查方法
# hbase-shell批量命令执行脚本的方法
# Hbase、elasticsearch整合中jar包冲突的问题解决
# 详解spring封装hbase的代码实现
# 详解VMware12使用三台虚拟机Ubuntu16.04系统搭建hadoop-2.7.1+hbase
# Hbase入门详解
# 给大家
# 的是
# 不懂
# 我用
# 希望能
# 能有
# 他那
# 写了
# 这篇
# 新来
# 还行
# 小编
# 大家多多
# 包里
# 不熟
# apache
# org
# hadoop
相关文章:
seo网站制作优化,网站SEO优化步骤有哪些?
Python lxml的etree和ElementTree有什么区别
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何安全更换建站之星模板并保留数据?
,购物网站怎么盈利呢?
php json中文编码为null的解决办法
哈尔滨网站建设策划,哈尔滨电工证查询网站?
建站主机无法访问?如何排查域名与服务器问题
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
网站制作难吗安全吗,做一个网站需要多久时间?
建站之星在线客服如何快速接入解答?
如何构建满足综合性能需求的优质建站方案?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
已有域名能否直接搭建网站?
专业公司网站制作公司,用什么语言做企业网站比较好?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
如何快速搭建支持数据库操作的智能建站平台?
电商网站制作公司有哪些,1688网是什么意思?
建站之星后台密码遗忘?如何快速找回?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
如何在新浪SAE免费搭建个人博客?
网站设计制作企业有哪些,抖音官网主页怎么设置?
h5网站制作工具有哪些,h5页面制作工具有哪些?
XML的“混合内容”是什么 怎么用DTD或XSD定义
大连网站制作公司哪家好一点,大连买房网站哪个好?
广州营销型建站服务商推荐:技术优势与SEO优化解析
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
实例解析Array和String方法
网站制作软件有哪些,制图软件有哪些?
建站之星免费版是否永久可用?
建站之星后台密码遗忘如何找回?
如何选择域名并搭建高效网站?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何配置支付宝与微信支付功能?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
长沙做网站要多少钱,长沙国安网络怎么样?
如何在Ubuntu系统下快速搭建WordPress个人网站?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何在橙子建站上传落地页?操作指南详解
建站之星如何修改网站生成路径?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
TestNG的testng.xml配置文件怎么写
在线制作视频的网站有哪些,电脑如何制作视频短片?
*请认真填写需求信息,我们会在24小时内与您取得联系。