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装饰器基础详解
Mar 09 Python
Python检测生僻字的实现方法
Oct 23 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
对python3新增的byte类型详解
Dec 04 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python中dict使用方法详解
Jul 17 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
Django如何实现上传图片功能
Aug 16 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 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 获取select下拉列表框的值
2010/05/08 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python模糊图片过滤的方法
2018/12/14 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
小学生期末评语
2014/04/21 职场文书
3的组成教学反思
2014/04/30 职场文书
企业年会祝酒词
2015/08/11 职场文书
小学安全教育主题班会
2015/08/12 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
解决golang在import自己的包报错的问题
2021/04/29 Golang