python利用thrift服务读取hbase数据的方法

 更新时间:2018年12月27日 11:17:33   作者:yan2611  
今天小编就为大家分享一篇python利用thrift服务读取hbase数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

因工作需要用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使用os模块和fileinput模块来操作文件目录

    Python使用os模块和fileinput模块来操作文件目录

    这篇文章主要介绍了Python编程中使用os模块和fileinput模块来操作文件的方法,包括获取路径和创建爱你删除目录等基本操作的例子,需要的朋友可以参考下
    2016-01-01
  • Jmeter如何使用BeanShell取样器调用Python脚本

    Jmeter如何使用BeanShell取样器调用Python脚本

    这篇文章主要介绍了Jmeter使用BeanShell取样器调用Python脚本,文章围绕Jmeter调用Python脚本的相关详情展开标题内容,需要的小伙伴可以参考一下
    2022-03-03
  • OpenCV 绘制同心圆的示例代码

    OpenCV 绘制同心圆的示例代码

    本文主要介绍了OpenCV 绘制同心圆的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例

    Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例

    这篇文章主要介绍了Python cookbook(数据结构与算法)通过公共键对字典列表排序算法,结合实例形式分析了Python基于operator模块中的itemgetter()函数对字典进行排序的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • 解决py2exe打包后,总是多显示一个DOS黑色窗口的问题

    解决py2exe打包后,总是多显示一个DOS黑色窗口的问题

    今天小编就为大家分享一篇解决py2exe打包后,总是多显示一个DOS黑色窗口的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python标准库学习之psutil内存详解

    Python标准库学习之psutil内存详解

    本篇文章给大家介绍一个Python标准库中的psutil模块,它是一个跨平台库,下面来学习一下器常用的功能及使用方法吧,有需要的同学可以借鉴参考下
    2021-09-09
  • 基于Flask框架添加多个AI模型的API并进行交互

    基于Flask框架添加多个AI模型的API并进行交互

    这篇文章主要介绍了如何基于 Flask 框架开发 AI 模型 API 管理系统,允许用户添加、删除不同 AI 模型的 API 密钥,感兴趣的可以了解下
    2025-03-03
  • 利用Python快速绘制海报地图

    利用Python快速绘制海报地图

    这篇文章主要介绍了如何利用Python快速绘制海报级别的地图,,需要的朋友可以参考下面文章的详细介绍
    2021-09-09
  • Python+PuLP实现线性规划的求解

    Python+PuLP实现线性规划的求解

    线性规划(Linear programming),在线性等式或不等式约束条件下求解线性目标函数的极值问题,常用于解决资源分配、生产调度和混合问题。本文将利用PuLP实现线性规划的求解,需要的可以参考一下
    2022-04-04
  • Python数据清理技巧分享

    Python数据清理技巧分享

    数据常常被比作新时代的石油,就像石油需要经过提炼才能制造出汽油一样,数据也需要经过整理才能发挥其作用,Python作为最广泛使用的编程语言之一,提供了强大的数据整理工具,本文给大家介绍了Python数据清理的技巧,需要的朋友可以参考下
    2023-10-10

最新评论