先说一下我的环境:
- pycharm 2016.3.2
- python 2.7 64位
- thrift-0.10.0 (http://thrift.apache.org/)
- hbase-1.1.2-src.tar.gz (http://archive.apache.org/dist/hbase/)
- windows 7 旗舰版
- centos 7 64位
所需各包请自行下载。整个过程确实有点麻烦,我的第一步是在centos7上安装thrift,不要问为什么,follow step!
1. 在centos7上安装thrift,地址已经在上面了,自行下载
>sudo yum -y install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel Python-devel ruby-devel crypto-utils openssl openssl-devel
>tar -zxvf thrift-0.10.0.gz
>mv thrift-0.10.0 /usr/local/
>cd /usr/local/thrift-0.10.0
>./configure --with-boost=/usr/include/
>sudo make
>sudo make install
有任何错误不用管它,在命令行中输入thrift,如果有使用提示,就成功了。
2. 生成hbase的Thrift模块
把hbase-1.1.2-src.tar.gz放到centos里面,然后解压
>tar xvfz hbase-1.1.2-src.tar.gz
>cd hbase-1.1.2/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift
>thrift --gen py Hbase.thrift
这时,你会看到一个gen-py的目录,目录结构是这个样子的
├── gen-py
│ ├── hbase
│ │ ├── constants.py
│ │ ├── Hbase.py
│ │ ├── Hbase-remote
│ │ ├── __init__.py
│ │ └── ttypes.py
│ └── __init__.py
└── Hbase.thrift
好了,我们需要的就是hbase这个目录和里面所有的文件
3. 回windows安装thrift
依然是thrift-0.10.0.gz这个包,把它解压
>cd thrift-0.10.0\lib\py
>setup.py install
然后进入到python2.7的目录
>cd C:\Python27\Lib\site-packages
把刚才在centos7中生成的hbase目录copy到这里
4. 打开pycharm
新建一个py文件,放一段代码:
from thrift.transport import TSocket
如果没有报错,就说明配置成功了,现在就可以通过thrift访问hbase了。