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实现合并两个数组的方法
May 16 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
python读取二进制mnist实例详解
May 31 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
详解django.contirb.auth-认证
Jul 16 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
python 伯努利分布详解
Feb 25 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
Python中threading库实现线程锁与释放锁
May 17 Python
Python 中random 库的详细使用
Jun 03 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结合表单实现一些简单功能的例子
2011/06/04 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
vue实现手机端省市区区域选择
2019/09/27 Javascript
js实现点击生成随机div
2020/01/16 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Python3中详解fabfile的编写
2018/06/24 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python实现PID算法及测试的例子
2019/08/08 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
什么是Smart Navigation?
2016/07/03 面试题
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
护士先进个人总结
2015/02/13 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
PHP实现两种排课方式
2021/06/26 PHP
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
Python采集股票数据并制作可视化柱状图
2022/04/04 Python
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers