新来的一个工程师不懂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
相关文章:
建站之星如何实现PC+手机+微信网站五合一建站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
定制建站如何定义?其核心优势是什么?
建站之星代理如何获取技术支持?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
公司网站制作价格怎么算,公司办个官网需要多少钱?
个人网站制作流程图片大全,个人网站如何注销?
如何通过NAT技术实现内网高效建站?
小程序网站制作需要准备什么资料,如何制作小程序?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Bpmn 2.0的XML文件怎么画流程图
如何续费美橙建站之星域名及服务?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
建站主机选哪种环境更利于SEO优化?
如何选择网络建站服务器?高效建站必看指南
html制作网站的步骤有哪些,iapp如何添加网页?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
电商网站制作公司有哪些,1688网是什么意思?
如何设置并定期更换建站之星安全管理员密码?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
建站VPS配置与SEO优化指南:关键词排名提升策略
北京网站制作的公司有哪些,北京白云观官方网站?
建站之星伪静态规则如何设置?
建站主机SSH密钥生成步骤及常见问题解答?
建站之星官网登录失败?如何快速解决?
如何在宝塔面板中修改默认建站目录?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
如何在建站之星绑定自定义域名?
郑州企业网站制作公司,郑州招聘网站有哪些?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
Python文件管理规范_工程实践说明【指导】
视频网站制作教程,怎么样制作优酷网的小视频?
如何做网站制作流程,*游戏网站怎么搭建?
如何在IIS7中新建站点?详细步骤解析
Swift中swift中的switch 语句
在线制作视频网站免费,都有哪些好的动漫网站?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
香港服务器WordPress建站指南:SEO优化与高效部署策略
建站之星后台管理如何实现高效配置?
学校为何禁止电信移动建设网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何用AWS免费套餐快速搭建高效网站?
建站主机功能解析:服务器选择与快速搭建指南
Python lxml的etree和ElementTree有什么区别
安徽网站建设与外贸建站服务专业定制方案
如何通过cPanel快速搭建网站?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
历史网站制作软件,华为如何找回被删除的网站?
大连网站制作公司哪家好一点,大连买房网站哪个好?
*请认真填写需求信息,我们会在24小时内与您取得联系。