新来的一个工程师不懂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
相关文章:
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何在Golang中指定模块版本_使用go.mod控制版本号
c# 在高并发场景下,委托和接口调用的性能对比
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
建站主机功能解析:服务器选择与快速搭建指南
建站之星官网登录失败?如何快速解决?
如何用wdcp快速搭建高效网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
网站插件制作软件免费下载,网页视频怎么下到本地插件?
实例解析Array和String方法
创业网站制作流程,创业网站可靠吗?
内部网站制作流程,如何建立公司内部网站?
如何快速搭建高效WAP手机网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何快速搭建FTP站点实现文件共享?
定制建站如何定义?其核心优势是什么?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
建站主机SSH密钥生成步骤及常见问题解答?
电商网站制作公司有哪些,1688网是什么意思?
如何用已有域名快速搭建网站?
湖北网站制作公司有哪些,湖北清能集团官网?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
音响网站制作视频教程,隆霸音响官方网站?
建站之星伪静态规则如何设置?
html制作网站的步骤有哪些,iapp如何添加网页?
建站主机选择指南:服务器配置与SEO优化实战技巧
建站之星云端配置指南:模板选择与SEO优化一键生成
Python lxml的etree和ElementTree有什么区别
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何在建站之星绑定自定义域名?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
如何用PHP工具快速搭建高效网站?
制作公司内部网站有哪些,内网如何建网站?
黑客如何通过漏洞一步步攻陷网站服务器?
建站主机是什么?如何选择适合的建站主机?
如何用西部建站助手快速创建专业网站?
个人网站制作流程图片大全,个人网站如何注销?
如何登录建站主机?访问步骤全解析
建站之星在线版空间:自助建站+智能模板一键生成方案
如何做静态网页,sublimetext3.0制作静态网页?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何快速选择适合个人网站的云服务器配置?
如何在VPS电脑上快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。