使用python连接hbase
1、安装包
- pip install happybase
- pip install thrift
2、代码
#-*- coding:utf-8 _*-
# @Author: dreams
# @File: connect.py
# @Time: 2018/6/10 15:55
import happybase
# 链接数据库
connection = happybase.Connection('192.168.1.51')
print connection.tables()
# 创建表
connection.create_table(
'lzh_base',
{
'cf1': dict(max_versions=10),
'cf2': dict(max_versions=1, block_cache_enabled=False),
'cf3': dict()
# 包括了三个列族:cf1, cf2, cf3
}
)
print connection.tables()
3、问题
在运行以上代码的时候会出现如下问题:
ThriftParserError: ThriftPy does not support generating module with path in protocol ‘d’
解决办法如下:
在 \env\hbase\Lib\site-packages\thriftpy\parser下的parser.py文件的488行有如下代码:
if url_scheme == '':
with open(path) as fh:
data = fh.read()
elif url_scheme in ('http', 'https'):
data = urlopen(path).read()
将其修改为:
if url_scheme == '':
with open(path) as fh:
data = fh.read()
elif url_scheme in ('c', 'd', 'e', 'f'):
with open(path) as fh:
data = fh.read()
elif url_scheme in ('http', 'https'):
data = urlopen(path).read()
修改之后再连接HBase就可以了。