hbase----使用Python开发

Posted BingGooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase----使用Python开发相关的知识,希望对你有一定的参考价值。


准备工作



由于hbase是使用java开发的,要想实现python对hbase进行跨语言开发,必须使用一个中间的服务器,Thrift Server,通过该服务器的编译,可以生成相应的python可以加载的模块,通过对模块的调用,实现python对hbase的连接操作,在此之前,我们需要做以下准备工作:



安装Thrift

wget http://archive.apache.org/dist/thrift/0.8.0/thrift-0.8.0.tar.gz

#下载thrift安装包


tar xzf thrift-0.8.0.tar.gz

#进行解压缩


#由于thrift需要依赖一些第三方库,所以我们通过yum方式去安装如下几个库:

yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel


yum install boost-devel.x86_64


yum install libevent-devel.x86_64


安装好以上几个依赖库以后,进入thrift解压文件的目录,实现对源码包的编译,执行以下步骤:

./configure --with-cpp=no --with-ruby=no

make

make install



产生针对Python的Hbase的API

wget http://archive.apache.org/dist/hbase/0.98.24/hbase-0.98.24-src.tar.gz

#下载hbase源码包,下载完成解压缩后,执行如下操作:

find . -name Hbase.thrift

#找到这个文件的路径,该文件用于产生可执行的python接口,用于对hbase的访问,找到该文件以后,执行以下命令,将该文件进行编译;

thrift -gen py Hbase.thrift

编译完成后,会生成gen-py的文件,将该目录下的文件复制到工程文件夹下:

cp -raf gen-py/hbase/ /home/hb/hbase_test



启动Thrift服务

可以看到,主节点上有一个ThirftServer的进程。




python对Hbase操作实践



创建表

hbase----使用Python开发


编写完Python脚本以后,执行该脚本,结果如下图:


hbase----使用Python开发

红色标注的即为我们通过Python脚本创建的表格,我们可以通过hbase shell 查看该表的内容,看看是不是和我们创建的内容一致,如下图所示:

hbase----使用Python开发

通过上图可以看到,表的内容和我们通过python脚本创建的内容一致,创建表操作执行成功。



插入数据

hbase----使用Python开发

向表new_music_table中添加行号为1100d的一行数据,通过base shell 查看该表内容是否添加成功:

hbase----使用Python开发



数据读取

hbase----使用Python开发

通过getRow函数读取1100行的数据,然后通过for循环去读取,row行号,列值。

hbase----使用Python开发



通过scan读取多条数据

hbase----使用Python开发

hbase----使用Python开发

具体命令的使用可以查询编译好的hbase文件中的.py文件



数据拆分

当hbase每个region最对能存放10G的数据,所以当数据量大于该值时,hbase会自动的将该region一分为二(按大小均分),当然我们也可以手动的去对分区进行拆分,实例如下:

hbase----使用Python开发

通过该命令可以对new_music_table的分区进行拆分,表名后面的是需要拆分的region编号

hbase----使用Python开发



数据合并

hbase----使用Python开发

hbase----使用Python开发




使用mapreduce对hbase进行开发



map开发

由于开发需要用到hbase(经过thrift编译产生)这一个外部模块,所以需要将该模块分发到各个节点行,分发方式为压缩文件,并且该模块需要和工程文件放在同一个目录下,否则会导入模块失败,

此外,还需要在各个节点上启动相应的thrift进程,所以需要将thrift安装路径下的lib库下的py文件(重命名为thrift)分发到各个节点上



run.sh任务提交脚本的开发

通过map任务批量的往hbase表中追加数据。


以上是关于hbase----使用Python开发的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作 HBase —— Trift Trift2 Happybase 安装使用

HBase Python API

python连接hbase报错ioerror

利用Python调用HBASE

Hbase的python操作

Golang+Python Hbase Thrift1 基本使用