Featured image of post Python实现Linux环境下Hbase操作

Python实现Linux环境下Hbase操作

@[TOC] 实验环境:CentOS6.7,Hadoop2.7.3,HBase1.2.5,zookeeper3.4.6

Linux下安装Python环境

安装依赖环境

1
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
1
yum -y install gcc

由于yum安装的bison版本兼容性问题后面会出现报错 checking for bison version >= 2.5… no configure: error: Bison version 2.5 or higher must be installed on the system! 故需下载升级版本的bison

下载升级版本的bison

1
wget http://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz

解压

1
tar xvf bison-2.5.1.tar.gz

进入bison安装目录执行配置脚本

1
./configure

编译

1
make

安装

1
make install

下载python安装环境(3.6更具兼容性)

https://www.python.org/ftp/python/

1
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

解压

1
tar xvf Python-3.6.6.tgz

进入python文件夹,生成编译脚本(指定安装目录)

1
./configure --prefix=/usr/local/python3  

编译

1
make

安装

1
make install

在这里插入图片描述

建立软连接,便于直接使用命令

1
2
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

验证python3配置完毕

1
2
python3 -V
pip3 -V

在这里插入图片描述

安装thift

安装python的thrift库使支持Thrift协议

1
pip3 install thrift

下载安装thift依赖包

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

下载thift 0.9.3

1
wget http://apache.fayea.com/thrift/0.9.3/thrift-0.9.3.tar.gz

上面的无法链接时,用下边的命令下载

1
wget http://mirrors.cnnic.cn/apache/thrift/0.9.3/thrift-0.9.3.tar.gz

解压

1
tar xvf thrift-0.9.3.tar.gz

进入thrift安装目录,执行配置脚本

1
./configure

编译

1
make

安装

1
make install

生成thrift的python编译版

下载hbase源码版

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

解压

1
tar xvf hbase-1.2.5-src.tar.gz

进入存有hbase.thrift的目录下

1
cd hbase-1.2.5/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/

使用thrift编译hbase.thrift

1
thrift --gen py Hbase.thrift

拷贝gen-py目录下的hbase目录到python的安装目录里的site-packages目录下

1
cp -r hbase /usr/local/python3/lib/python3.6/site-packages/

进入site-packages目录下的hbase目录,修改Hbase.py和constant.py文件(python3需要)

from ttypes import * 改为 from hbase.ttypes import * 再次修改Hbase.py和ttypes.py文件,然后找到该目录后,将虚拟机文件转到本地主机,使用记事本打开文件,按Ctrl+H快捷键,替换xrange为range和__dict__.iteritems为__dict__.items后保存 也可直接下载下面文件覆盖修改Hbase.py,constants.py,ttypes.py文件 下载链接

启动thrift服务

1
hbase-daemon.sh start thrift

验证是否启动thrift服务

thrfit使用问题汇总

Pycharm无法连接本机hbase

使用本机pycharm连接虚拟机的hbase时,首先需要与虚拟机相互ping通,若未能ping通,可能是虚拟机的网络适配器和虚拟机不处于同一网段,需配置如下 步骤如下: 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 连接hbase时报错 在这里插入图片描述 解决: hbase没有启动thrift服务

1
hbase-dameon.sh start thrfit

使用metateRow()函数,插入行数据时报错 在这里插入图片描述 解决: Hbase表中需要已定义相应列族才能插入数据,需定义好后再插入

comments powered by Disqus