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操作实践
创建表
编写完Python脚本以后,执行该脚本,结果如下图:
红色标注的即为我们通过Python脚本创建的表格,我们可以通过hbase shell 查看该表的内容,看看是不是和我们创建的内容一致,如下图所示:
通过上图可以看到,表的内容和我们通过python脚本创建的内容一致,创建表操作执行成功。
插入数据
向表new_music_table中添加行号为1100d的一行数据,通过base shell 查看该表内容是否添加成功:
数据读取
通过getRow函数读取1100行的数据,然后通过for循环去读取,row行号,列值。
通过scan读取多条数据
具体命令的使用可以查询编译好的hbase文件中的.py文件
数据拆分
当hbase每个region最对能存放10G的数据,所以当数据量大于该值时,hbase会自动的将该region一分为二(按大小均分),当然我们也可以手动的去对分区进行拆分,实例如下:
通过该命令可以对new_music_table的分区进行拆分,表名后面的是需要拆分的region编号
数据合并
使用mapreduce对hbase进行开发
map开发
由于开发需要用到hbase(经过thrift编译产生)这一个外部模块,所以需要将该模块分发到各个节点行,分发方式为压缩文件,并且该模块需要和工程文件放在同一个目录下,否则会导入模块失败,
此外,还需要在各个节点上启动相应的thrift进程,所以需要将thrift安装路径下的lib库下的py文件(重命名为thrift)分发到各个节点上
run.sh任务提交脚本的开发
通过map任务批量的往hbase表中追加数据。
以上是关于hbase----使用Python开发的主要内容,如果未能解决你的问题,请参考以下文章