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使用htpasswd实现基本认证授权的例子
Jun 10 Python
github配置使用指南
Nov 18 Python
老生常谈python之鸭子类和多态
Jun 13 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
Python 12306抢火车票脚本
Feb 07 Python
Django中间件实现拦截器的方法
Jun 01 Python
pycharm运行出现ImportError:No module named的解决方法
Oct 13 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
Django ModelForm组件使用方法详解
Jul 23 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
python批量修改文件名的示例
Sep 27 Python
浅谈Python中对象是如何被调用的
Apr 06 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 iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
js实现各浏览器全屏代码实例
2018/07/03 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
Python 基础之字符串string详解及实例
2017/04/01 Python
python使用fork实现守护进程的方法
2017/11/16 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
团组织关系介绍信
2014/01/12 职场文书
电气工程自动化求职信
2014/03/14 职场文书
如何写自我鉴定
2014/03/19 职场文书
保护环境倡议书
2014/04/14 职场文书
银行贷款收入证明
2014/10/17 职场文书
2015年党员承诺书
2015/01/21 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技