当前环境:
pycharm 64位
ubuntu
hbase2.0.3
从windows环境使用pycharm访问hbase,前提hbase集群已经搭建好,在ubuntu上搭建的集群环境为hbase2.0.3
步骤:
一、在ubuntu的hbase主节点上安装thrift
1.ubuntu系统执行以下命令:
sudo apt-get update
sudo apt-get automake libtool flex bison pkgconfig gcc boost-devel libevent-devel zlib-devel Python-devel ruby-devel crypto-utils openssl openssl-devel
2.下载thrift (http://thrift.apache.org/)
tar -zxvf thrift-0.10.0.tar.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
3.下载hbase对应版本的源码,生成目录
tar xvfz hbase-2.0.3-src.tar.gz
cd hbase-2.0.3/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift
thrift --gen py Hbase.thrift
在thrift目录下会生成一个gen-py的目录
4.在hbase主节点上启动thrift服务
在hbase的bin目录下 启动thrift模块,默认端口在9090,启动后可以使用jps或者netstat -anp|grep 9090命令查询是否启动成功
./hbase-daemon.sh start thrift
二、在windows系统上
1.解压前面下载的thrift压缩包,在windows环境中安装thrift模块,如图所示
2.安装好后,将前面第3步生成的gen-py目录下的hbase目录拷贝到windows环境python安装目录的site-packages文件夹中,比如C:\software\install\Python27\Lib\site-packages文件夹
3.在pycharm中编写程序
from thrift.transport import TSocket
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import *
transport = TSocket.TSocket("IP", 9090)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Hbase.Client(protocol)
transport.open()
contents = ColumnDescriptor(name='cf:', maxVersions=1)
client.createTable('test', [contents])
print client.getTableNames()
执行程序后,从hbase shell中可以看到新创建了一张test的表名