个人网站建设规划,seo教程培训班,创业服务中心平台,城市人家装饰公司怎么样目前有两个库可以操作HBASE#xff1a;hbase-thrift 和 happybase happybase使用起来比较简单方便#xff0c;因此重点学习该库#xff0c;hbase-thrift只做简要介绍。 #xff08;一#xff09;hbase-thrift 1、使用前先添加库和依赖库#xff1a; pip install thrift
… 目前有两个库可以操作HBASEhbase-thrift 和 happybase happybase使用起来比较简单方便因此重点学习该库hbase-thrift只做简要介绍。 一hbase-thrift 1、使用前先添加库和依赖库 pip install thrift
pip install hbase-thrift
pip install google-cloud
pip install google-cloud-vision
pip install kazoo 2、连接数据库的配置信息 #先在Linux上启动HBASE server
#/opt/cloudera/parcels/CDH/lib/hbase/bin/hbase-daemon.sh --config /opt/cloudera/parcels/CDH/lib/hbase/conf foreground_start thrift --infoport 9096 -p 9091
#再运行该python脚本连接服务器from thrift.transport import TSocket
from hbase import Hbase
from hbase.ttypes import *host xxx.xxx.xxx.xxx
port 9091
framed Falsesocket TSocket.TSocket(host, port)
if framed:transport TTransport.TFramedTransport(socket)
else:transport TTransport.TBufferedTransport(socket)
protocol TBinaryProtocol.TBinaryProtocol(transport)
client Hbase.Client(protocol) 3、操作数据库 print (Thrift2 Demo)
print (This demo assumes you have a table called \example\ with a column family called \family1\)#打开连接
transport.open()# 获取所有表名
tableNames client.getTableNames()
print(tableNames:, tableNames)#关闭连接
transport.close()#################################################
# #结果为
# Thrift2 Demo
# This demo assumes you have a table called example with a column family called family1
# tableNames: [lrx_hbase_test, lrx_hbase_test2, lrx_hbase_test3, lrx_test] 二happybase # pip install thrift
# pip install happybase
# 先在Linux上启动HBASE server
# /opt/cloudera/parcels/CDH/lib/hbase/bin/hbase-daemon.sh --config /opt/cloudera/parcels/CDH/lib/hbase/conf foreground_start thrift --infoport 9096 -p 9091
# 再运行python脚本连接服务器
import happybase
from conf import setting
# 创建连接通过参数size来设置连接池中连接的个数
connection happybase.Connection(**setting.HBASE)
# 打开传输无返回值
connection.open()
# 创建表无返回值
# connection.create_table(lrx_test,
# {
# data:dict()
# })
# 获取一个表对象返回一个happybase.table.Table对象(返回二进制表名)
table0 connection.table(lrx_test)
print(表对象为)
print(table0) #happybase.table.Table nameblrx_test
# 获取表实例返回一个happybase.table.Table对象(返回表名)
table happybase.Table(lrx_test,connection)
print(表实例为)
print(table) #happybase.table.Table namelrx_test
# 插入数据无返回值 ----在row1行,data:1列插入值value1
for i in range(5):table.put(row%s %i,{data:%s%i:%s %i} )
table.put(row5,{data:5:value1})# 获取单元格数据返回一个list
content table.cells(row1,data:1)
print (content) #[bvalue1, bvalue1]
# 获取计数器列的值返回当前单元格的值
# content2 table.counter_get(row2,data:2)
# print(content2) #0
# 获取一个扫描器返回一个generator
scanner table.scan()
for k,v in scanner:print(k,v)
###########################################
# #结果为
# #brow0 {bdata:0: b0}
# brow1 {bdata:1: bvalue1}
# brow2 {bdata:2: b2}
# brow3 {bdata:3: b3}
# brow4 {bdata:4: b4}print(scanner) #generator object Table.scan at 0x000001E17CCDAF10
# 获取一行数据返回一个dict
info table.row(row2)
info1{}
for k,v in info.items():info1[k.decode()]v.decode()
print(info1)
#获取表名
table connection.tables()
print(table)
# 关闭传输无返回值
connection.close() 转载于:https://www.cnblogs.com/yanwuliu/p/10695892.html