Hadoop---安装thrift
来源:互联网 发布:淘宝买家退货率高后果 编辑:程序博客网 时间:2024/06/05 05:17
因为主要参照shine_forever的文章利用python访问Hbase(Thrift模块安装与测试),所以把类型设为转载,并对原作者表示感谢。
关于Thrift的介绍请看文章最后的第一个参考文献。
对比我的和参考文章的安装过程,其中的/usr/local/python2.7/lib/python2.7/site-packages/对应为我的/usr/local/lib/python2.7/site-packages/
其中的/usr/lib/python2.7/site-packages/对应为我的/usr/lib/python2.7/site-packages/
python版本为2.7.3
说明,python2.7.3与thrift结合没问题!
1)下载并安装thrift
>sudo tar fvxz thrift-0.9.3.tar.gz>cd thrift-0.9.3>sudo ./configure >sudo make>sudo make install
2)让thrift支持hbase
执行以下命令:
thrift --gen py /usr/hbase-0.94.11/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift
注意我的hbase安装在/usr下。
会在当前目前下创建一个目录,目录名称为:gen-py
[hadoop@node1 ~]$ lltotal 7056-rw-rw-r-- 1 hadoop hadoop 3045 Oct 14 13:55 access_log2.txt-rw-r--r-- 1 hadoop hadoop 7118627 Feb 1 2012 access_log.txt-rw-rw-r-- 1 hadoop hadoop 3500 Oct 22 10:17 derby.log**drwxrwxr-x 3 hadoop hadoop 4096 Oct 24 15:28 gen-py**-rw-rw-r-- 1 hadoop hadoop 3551 Oct 13 11:21 pig_1413170429087.loggen-py目录结构如下:[hadoop@node1 ~]$ tree gen-py/gen-py/|-- __init__.py`-- hbase |-- Hbase-remote |-- Hbase.py |-- __init__.py |-- constants.py `-- ttypes.py1 directory, 6 files
3)把gen-py目录复制到python相关目录中:
sudo cp -r gen-py/hbase/ /usr/local/lib/python2.7/site-packages/.
4)让python可以import thrift模块:
sudo ln -s /usr/lib/python2.7/site-packages/thrift* /usr/local/lib/python2.7/site-packages/. //注意这与上面是一行sudo ls -l /usr/local/lib/python2.7/site-packages/total 12drwxr-xr-x 2 root root 4096 Oct 24 15:32 hbase-rw-r--r-- 1 root root 119 Oct 24 11:30 READMElrwxrwxrwx 1 root root 39 Oct 24 15:50 thrift -> /usr/lib/python2.7/site-packages/thriftlrwxrwxrwx 1 root root 60 Oct 24 15:50 thrift-0.9.0-py2.7.egg-info -> /usr/lib/python2.7/site-packages/thrift-0.9.0-py2.7.egg-info
5)使用python通过thrift连接HBase测试
1、启动thrift【需提前启动Hadoop和HBase】
[hadoop@lenovo ~]$ hbase thrift -p 9090 start打开另一个终端>jps可以发现多了一个ThriftServer。
2 编写python脚本,查看hbase中有哪些表:
创建testThrift.py文件,并chmod a+x testThrift.py
#! /usr/bin/env python#coding=utf-8import sys#Hbase.thrift生成的py文件放在这里,此处与原文不同sys.path.append('/usr/local/lib/python2.7/site-packages')from thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocolfrom hbase import Hbase#如ColumnDescriptor 等在hbase.ttypes中定义from hbase.ttypes import *# Make socket#此处可以修改地址和端口transport = TSocket.TSocket('172.16.41.26', 9090)# Buffering is critical. Raw sockets are very slow# 还可以用TFramedTransport,也是高效传输方式transport = TTransport.TBufferedTransport(transport)# Wrap in a protocol#传输协议和传输过程是分离的,可以支持多协议protocol = TBinaryProtocol.TBinaryProtocol(transport)#客户端代表一个用户client = Hbase.Client(protocol)#打开连接transport.open()#打印表名print(client.getTableNames())
>./testThrift.py[]
参考文献:
讲如何安装Thrift的How-to: Use the HBase Thrift Interface, Part 1
讲如何写python使用Thrift的How-to: Use the HBase Thrift Interface, Part 2: Inserting/Getting Rows
别人的安装过程利用python访问Hbase(Thrift模块安装与测试)
- thrift+scribe安装+hadoop
- Hadoop---安装thrift
- thrift安装
- thrift安装
- thrift安装
- thrift安装
- thrift安装
- thrift 安装
- thrift 安装
- thrift安装
- Thrift 安装
- thrift 安装
- thrift安装
- thrift 安装
- thrift 安装
- thrift安装
- thrift安装
- 安装thrift
- POJ 3746 Teacher YYF (打表)
- UIImageView不能设置圆角的解决方法
- Add Binary
- 在Maven中新增自定的jar包
- 解决confluence的乱码问题
- Hadoop---安装thrift
- mongodb mongod 启动参数
- linxu配置网卡
- IOS自学之UIview属性
- 插入排序
- 虚拟现实Demo
- gbk 编码表
- 如何修改tomcat端口
- Chapter02 控制结构和函数