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 fabric使用笔记
May 09 Python
Python生成随机验证码的两种方法
Dec 22 Python
Python+MongoDB自增键值的简单实现
Nov 04 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
Python文本处理之按行处理大文件的方法
Apr 09 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
python中open函数的基本用法示例
Sep 07 Python
使用python 将图片复制到系统剪贴中
Dec 13 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
研究生毕业鉴定
2014/01/29 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
真诚的求职信
2014/07/04 职场文书
群众路线教育实践活动学习心得体会
2014/10/30 职场文书
学校体育节班级口号
2015/12/25 职场文书
高二数学教学反思
2016/02/18 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL