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 相关文章推荐
Cython 三分钟入门教程
Sep 17 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python编程羊车门问题代码示例
Oct 25 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
Python笔记之代理模式
Nov 20 Python
浅谈python出错时traceback的解读
Jul 15 Python
Python基于Webhook实现github自动化部署
Nov 28 Python
使用tkinter实现三子棋游戏
Feb 25 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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
改造一台复古桌面收音机
2021/03/02 无线电
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
文件上传程序的全部源码
2006/10/09 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
八年级数学教学反思
2014/01/31 职场文书
环保倡议书300字
2014/05/15 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
2014公司年终工作总结
2014/12/19 职场文书
升学宴学生致辞
2015/07/27 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
MySQL常见优化方案汇总
2022/01/18 MySQL
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
win sever 2022如何占用操作主机角色
2022/06/25 Servers