python利用thrift服务读取hbase数据的方法


Posted in Python onDecember 27, 2018

因工作需要用python通过hbase的thrift服务读取Hbase表数据,发现公司的测试环境还不支持,于是自己动手准备环境,在此我将在安装步骤尽可能描述清楚,旨在给第一次动手安装的朋友,此过程亲测成功!

安装过程如下:

1、首先确保hbase安装测试成功,再者确认下hbase的thrift服务是否启动,注意目前的Hbase(本文基于版本0.98.17)有两套thrift接口thrift和thrift2,本文使用thrift,启动命令:hbase thrift -p 9090 start,确保该端口没有被占用,使用lsof -i:9090查看),本公司测试环境该端口被占用,如果被占用换一个没有被占用的端口即可;

2、安装thrift,去官网下载thrift:http://thrift.apache.org/download,本人使用 thrift-0.10.0.tar.gz ,下载好后编译安装,解压后进入安装目录/home/hadoop/thrift-0.10.0,分别执行./configure make,make,sudo make install,注意这边可能因各环境不同可能遇到问题,具体安装所需环境请参考官网:http://thrift.apache.org/docs/install/centos,安装之后可以用thrift -version命令测试是否安装成功,安装成功后会显示安装的版本;

3、确保1和2没有问题,接下来需要生成python脚本需要导入的hbase相关模块,首先去官网下载hbase源码,注意虽然本公司用的hbase版本是0.98.17但是只要版本相差不大都可以使用,本人使用的是 hbase-0.98.24-src.tar.gz,下载解压后找到thrift目录:hbase-0.98.24/hbase-thrift/src/main/resources/org/apache/hadoop/hbase,该目录下有两个thrift服务,进入thrift后执行thrift --gen pyHbase.thrift,不出现问题会在该thrift目录下生成目录 gen-py,里面具体是hbase模块,将该目录名称改为hbase,并拷贝进python模块包:cp -r hbase /usr/lib/python2.7/site-packages/,至此python需要使用的hbase模块已经准备好;

4、写python脚本测试

#! /usr/bin/python
import sys
sys.path.append('/usr/lib/python2.7/site-packages/hbase') # 引入正确的hbase模块路径,测试过可删除
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import *
 
transport = TSocket.TSocket('101.71.51.221', 9099)
transport = TTransport.TBufferedTransport(transport)
 
protocol = TBinaryProtocol.TBinaryProtocol(transport)
 
client = Hbase.Client(protocol)
 
transport.open()
 
tableName = 'hb_vender'
rowKey = '17_bcc5f02a876b010cbcd3fb2f82ab5b8e_43_111_57_437b9e2a-257c-4115-9570-bcd61741b3dc'
 
result = client.getRow(tableName, rowKey, None)
print result
for r in result:
	print 'the row is ' , r.row
	print 'the values is ' , r.columns.get('a:venderName').value

注意这边可能出现:ImportError: No module named six,因为需要安装six,如果已经安装pip,使用pip install six,如果没有安装用root执行安装:easy_install six,安装成功后执行脚本测试成功!

以上这篇python利用thrift服务读取hbase数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
Django中信号signals的简单使用方法
Jul 04 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
python+requests接口自动化框架的实现
Aug 31 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
python hbase读取数据发送kafka的方法
Dec 27 #Python
Python类和对象的定义与实际应用案例分析
Dec 27 #Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 #Python
kafka-python批量发送数据的实例
Dec 27 #Python
Python闭包思想与用法浅析
Dec 27 #Python
对python操作kafka写入json数据的简单demo分享
Dec 27 #Python
python消费kafka数据批量插入到es的方法
Dec 27 #Python
You might like
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP链表操作简单示例
2016/10/15 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
vue 组件简介
2020/07/31 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
Python实现上下班抢个顺风单脚本
2018/02/07 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
学校清明节活动总结
2014/07/04 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
护士个人年度总结范文
2015/02/13 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
创业计划书之家教中心
2019/09/25 职场文书
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技