zoukankan      html  css  js  c++  java
  • ambari安装集群下python连接hbase之安装thrift

    简介:  

      python连接hbase是需要通过thrift连进行连接的,ambari安装的服务中貌似没有自带安装hbase的thrift,我是看配置hbase的配置名称里面没有thrift,cdh版本的就有,所以我就自己安装了thrift。

    一、thrift安装:

    1、下载thrift依赖的东西 

    yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel

    2、安装boost_1_53_0.tar.gz

    [root@master ~]# wget http://sourceforge.net/projects/boost/files/boost/1.53.0/boost_1_53_0.tar.gz
    [root@master ~]# tar xvf boost_1_53_0.tar.gz
    [root@master ~]# cd boost_1_53_0
    [root@master boost_1_53_0]# ./bootstrap.sh
    [root@master boost_1_53_0]# ./b2 install
    [root@master boost_1_53_0]# cp /usr/local/lib/libboost_unit_test_framework.a /usr/lib64/
    [root@master boost_1_53_0]# make
    [root@master boost_1_53_0]# make install

    3、下载最新版本thrift,网址:http://thrift.apache.org
     
    4、移动到默认安装目录,并解压

    [root@master ~]# mv thrift-0.11.0.tar.gz /usr/local
    [root@master ~]# cd /usr/local
    [root@master local]# tar -zxvf thrift-0.11.0.tar.gz
    [root@master local]# mv thrift-0.11.0 thrift
    [root@master local]# cd thrift
    [root@master local]# ./configure --libdir=/usr/lib --without-java --without-python --without-c_glib
    [root@master local]# make
    [root@master local]# make install

     二、启动thrift

    1、找到hbase的bin执行文件夹,我执行的位置是ambari默认安装的文件夹下面/usr/hdp/2.6.3.0-235/hbase/bin

    2、启动thrift,默认端口是9090

    [root@master ~]# cd /usr/hdp/2.6.3.0-235/hbase/bin
    [root@master bin]# bin/hbase-daemon.sh start thrift

    三、使用python连接hbase

    1、安装python依赖包

    pip install thrift
    pip install hbase-thrift

    2、demo程序

    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('localhost', 9090)
    
    transport = TTransport.TBufferedTransport(transport)
    protocol = TBinaryProtocol.TBinaryProtocol(transport)
    
    client = Hbase.Client(protocol)
    transport.open()
    
    contents = ColumnDescriptor(name='cf:', maxVersions=1)
    # client.deleteTable('test')
    client.createTable('test', [contents])
    
    print client.getTableNames()
    
    # insert data
    transport.open()
    
    row = 'row-key1'
    
    mutations = [Mutation(column="cf:a", value="1")]
    client.mutateRow('test', row, mutations)
    
    # get one row
    tableName = 'test'
    rowKey = 'row-key1'
    
    result = client.getRow(tableName, rowKey)
    print result
    for r in result:
        print 'the row is ', r.row
        print 'the values is ', r.columns.get('cf:a').value
    transport.close()
  • 相关阅读:
    第六章:体系结构篇
    Linux查看显示编辑文本文件
    第五章:管理数据库实例
    yum [Errno 256] No more mirrors to try 解决方法
    第四章:Oracle12c 数据库在linux环境安装
    第三章:数据库管理的任务
    13 款免费但好用到哭的项目管理工具
    在CentOS 7上部署Ghost博客
    CentOS7上部署taiga项目管理软件
    CentOS6配置Taiga
  • 原文地址:https://www.cnblogs.com/zhang-ke/p/9008228.html
Copyright © 2011-2022 走看看