@[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
|
由于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安装目录执行配置脚本
编译
安装
下载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
2
| ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
|
验证python3配置完毕

安装thift
安装python的thrift库使支持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安装目录,执行配置脚本
编译
安装
生成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表中需要已定义相应列族才能插入数据,需定义好后再插入