重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
利用Python调用HBASE的 需要安装thrift hbase-thrift
专注于为中小企业提供成都做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业珠晖免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。启动hbase的thrift服务:bin/hbase-daemon.sh start thrift 默认端口是9090
mysql 到hbase的数据同步:
1、put
2、Importtsv
3、编写MapReduce Job导入
4、sqoop
简单code:
#!/usr/bin/env python
#coding=utf-8
import sys
sys.path.append('/usr/lib/python2.6/site-packages/hbase')
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 *
import csv
from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation, TRegionInfo
from hbase.ttypes import IOError, AlreadyExists
######
def client_conn():
transport=TSocket.TSocket("172.16.10.87",9090)
transport=TTransport.TBufferedTransport(transport)
protocol=TBinaryProtocol.TBinaryProtocol(transport)
client=Hbase.Client(protocol)
transport.open()
return client
def __del__():
transport.close()
if __name__=="__main__":
client=client_conn()
#获取表名字
print client.getTableNames()
##创建表
#client.createTable('name2',[ColumnDescriptor(name="user_id:",maxVersions=1),ColumnDescriptor(name="user_name"),])
#写入数据
client.mutateRow('name2','a1',[Mutation(column='user_id:1',value="1")])
client.mutateRow('ca_record','1',[Mutation(column='user_id:0',value='5')])
##获取数据
aa=client.getRow('name2','a1')
for r in aa:
print 'row',r.row
print '\br'
print 'value',r.columns.get("user_id:1").value
##删除表
#client.disableTable("t1")
#client.deleteTable("t1")
print client.getTableNames()
###获取表的行键值
#print client.scannerGet(client.scannerOpen('t2',"cmd",["a"]))
print client.scannerGet(client.scannerOpen('t2',"",["a"])) #当row key为空取第一个
print "------"
print client.getColumnDescriptors('t3')
#在自己开发环境 只要安装好thrift 及hbase-thrift的包,在import的时候不会出问题
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。