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异常学习笔记
Feb 03 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python实现字符串格式化的方法小结
Feb 20 Python
Python3实现购物车功能
Apr 18 Python
python实现括号匹配的思路详解
Aug 23 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
python属于跨平台语言码
Jun 09 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
python中的None与NULL用法说明
May 25 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
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Python文件处理
2016/02/29 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
Python编程argparse入门浅析
2018/02/07 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
新三好学生主要事迹
2014/01/23 职场文书
青春寄语大全
2014/04/09 职场文书
民事授权委托书范文
2014/08/02 职场文书
小学运动会通讯稿
2015/07/18 职场文书