您的位置 首页 java

Hadoop大数据分析之用python连接并操作hbase

之前做项目都是使用java连接操作 hbase 的,或者偶尔用 Python 写几个一些简单的 put、get 操作。最近在使用mysql库批量向 hbase 导入数据,想使用python试一下。HBase是Apache的 Hadoop 项目的子项,HBase不同于一般的 关系数据库 ,它是一个适合于 非结构化数据 存储的数据库,适合于非结构化数据存储,另一个不同的是HBase基于列的而不是基于行的开源数据库。HappyBase 是 FaceBook 员工开发的操作 HBase 的 Python 库,其基于 Python thrift ,但使用方式比 Thrift 简单、简洁许多,已被广泛应用。Python调用happybase库或hbase-thrift库使用thrift操作Hbase,thrift 是facebook开发并开源的一个二进制通讯中间件。

启动hbase thriftserver服务

hbase本身已经集成了thrift,可与第三方应用通信。使用以下命令开启hbase thrift的服务器端,默认情况下 rpc 监听9090端口. hbase-daemon.sh start thrift2

查看webui:

方法一 使用happybase 连接hbase

使用pip安装依赖:

pip install thrift

pip install happybase

happybase.Connection(host=’ localhost ‘, port=9090, timeout=None, autoconnect=True, table_prefix=None, table_prefix_separator=b’_’, compat=’0.98′, transport=’buffered’, protocol =’binary’)

其中host:主机名,port:端口,timeout:超时时间,autoconnect:连接是否直接打开,table_prefix:用于构造表名的前缀,table_prefix_separator:用于table_prefix的分隔符,compat:兼容模式,transport:运输模式,protocol:协议。

连接示例代码:

import happybase

connection = happybase.Connection(‘localhost’, compat=’0.90′)

connection. open ()

print connection.tables()

table = connection.table(‘test_table’)

row = table.row(‘row1’, columns=[‘data:1’])

print row[‘data:1’]

for key, data in table.scan():

print key, data

connection. close ()

方法二使用hbase-thrift 连接hbase

sudo pip install thrift

sudo pip install hbase-thrift

连接示例代码:

from thrift.transport import TSocket, TTransport

from thrift.protocol import TBinaryProtocol

from hbase import Hbase

from thrift import Thrift

from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation, TRegionInfo

from hbase.ttypes import IOError, AlreadyExists

transport = TSocket.TSocket(‘localhost’, 9090)

transport.setTimeout(5000)

trans = TTransport.TBufferedTransport(transport)

protocol = TBinaryProtocol.TBinaryProtocol(trans)

client = Hbase.Client(protocol)

transport.open()

client.getTableNames()

文章来源:智云一二三科技

文章标题:Hadoop大数据分析之用python连接并操作hbase

文章地址:https://www.zhihuclub.com/188012.shtml

关于作者: 智云科技

热门文章

网站地图