Hbase单机安装 及 Thrift-0.11.0在Centos7下安装、PHP 通过Thrift 操作HBASE

在单机模式下安装HBase

一、安装JDK https://blog.csdn.net/y472360651/article/details/78751859

二、从官网下在相应版本的安装包http://archive.apache.org/dist/hbase/  可选择 stable/  版的,这里选择的是

hbase-1.4.8-bin.tar.gz  还有一个 hbase-1.4.8-src.tar.gz,两者区别如下:

bin代表二进制可执行,src代表源代码文件。src的拿到之后要编译一下。

hbase-1.4.8-bin.tar.gz是直接编译好的,直接安装就行。

hbase-1.4.8-src.tar.gz是源代码,需要编译hbase环境进行编译,然后再安装使用。

三、 解压

tar -zxvf hbase-1.4.8-bin.tar.gz

四、移动至/usr/local/HBase目录当中

mv hadoop-1.4.8  /usr/local/hbase

五、进入/usr/local/HBase/conf目录,使用vi编辑器,打开hbase-env.sh文件,修改Java环境变量JAVA_HOME的值和pid存放位置(根据自己jdk版本和路径更改):

export JAVA_HOME=/usr/local/jdk1.8.0_151

export PATH=$PATH:$JAVA_HOME/bin

添加Hbase环境变量:

export HBASE_HOME=/usr/local/hbase

export PATH=$PATH:$HBASE_HOME/bin

使用source~/.bashrc让配置立即生效

六:进入/usr/local/HBase/conf目录,使用vi编辑器,打开hbase-site.xml文件。这是HBase的主要配置文件,你只需要在HBase和Zookeeper写入数据的本地文件系统上指定目录即可。将<property>标签粘贴到标签下<configuration>下:

可自己更改到想要的路径
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///home/hbase/rootdir</value> 
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/hbase/zookeeper</value>
    </property>
</configuration>
七、进入/usr/local/hbase/bin目录,输入以下命令启动HBase:

./start-hbase.sh //启动

./stop-hbase.sh //停止

Thrift 安装

一、安装centos需要的扩展

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

二、安装boost,本地源码安装最安全

wget http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz

tar -xvf boost_1_63_0.tar.gz

cd boost_1_63_0

./bootstrap.sh

./b2 install
三、安装Thrift

0.11.0版本下载地址:http://mirrors.hust.edu.cn/apache/thrift/0.11.0/thrift-0.11.0.tar.gz

解压编译:

tar -zxvf thrift-0.11.0.tar.gz

cd thrift-0.11.0
./configure --with-cpp --with-boost --with-python --without-csharp --with-java --without-erlang --without-perl --with-php --without-php_extension --without-ruby --without-haskell  --without-go
make
make install

在Master中Hbase安装目录下的bin目录启动thrift服务:

./hbase-daemon.sh start thrift

PHP通过Thrift访问Hbase

Hbase通过thrift这个跨语言的RPC框架提供多语言的调用,Hbase有两套thrift接口(thrift1和thrift2),但是它们并不兼容

1、访问官网http://thrift.apache.org/download,下载

thrift-0.11.0.exe   (windows下生成接口rpc工具,thrift-0.11.0.exe改名thrift.exe,保存在相应位置,如E:\app\thrift.exe)
thrift-0.11.0.tar.gz(thrift相关库,保存在相应位置,如E:\app\thrift-0.11.0)

 

2、访问hbase官网(http://archive.apache.org/dist/hbase/),下载相应的Hbase版本,如:stable/hbase-1.4.8-src.tar.gz  

解压保存在E:\app\hbase-1.4.8

 

3、生成php接口代码

输入cmd命令,切换到E:\app,可生成thrift和thrift2两种接口文件,自行选择

使用如下命令生成thrift   php接口代码:

thrift -gen php hbase-1.4.8\hbase-thrift\src\main\resources\org\apache\hadoop\hbase\thrift\hbase.thrift

使用如下命令生成thrift2  php接口代码:

thrift -gen php hbase-1.4.8\hbase-thrift\src\main\resources\org\apache\hadoop\hbase\thrift2\hbase.thrift

以thrift接口文件为例, 其会生成在E:\app\gen-php\Hbase文件夹下:

thrift php接口文件包含:Hbase.php,Types.php

 

4、要通过thrift调用hbase,需要先启动hbase的接口服务

$HBASE_HOME/bin/hbase-daemon.sh start thrift  //启动   根据hbase-daemon.sh的位置执行命名

$HBASE_HOME/bin/hbase-daemon.sh stop thrift  //停止

 

5、php脚本库操作Hbase,以thrift接口文件为例

      首先解压得到的thrift 相关库,找到php的相关库,thrift-0.11.0/lib/php/下,里面文件如下:

将php文件夹复制到自己的web目录下,如:C:\phpStudy\PHPTutorial\WWW\php  thrift php接口文件

可在C:\phpStudy\PHPTutorial\WWW\php\src文件夹下建立packages文件夹,将生成的接口文件夹Hbase复制到其中

使用php脚本测试:

<?php
$GLOBALS['THRIFT_ROOT'] = './php/lib';
require_once $GLOBALS['THRIFT_ROOT'].'/Thrift/ClassLoader/ThriftClassLoader.php';
use Thrift\ClassLoader\ThriftClassLoader;
$loader = new ThriftClassLoader();
$loader->registerNamespace('Thrift','./php/lib');
$loader->register();
require_once './php/src/packages/Hbase/Hbase.php';
require_once './php/src/packages/Hbase/Types.php';
use Thrift\Protocol\TBinaryProtocol;
use Thrift\Transport\TBufferedTransport;
use Thrift\Transport\TSocket;

//连接Hbase
$host = '12.12.125.26';
$port = 9090;
$socket = new TSocket($host, $port);
$socket->setSendTimeout(10000); // Ten seconds (too long for production, but this is just a demo ;)
$socket->setRecvTimeout(20000); // Twenty seconds
$transport = new TBufferedTransport($socket);
$protocol = new TBinaryProtocol($transport);
$client = new Hbase\HbaseClient($protocol);
$transport->open();

//获取表列的数据
$tableName = 'test';
$row_key = 'test_row';
$col_name = array("test_cf:column1");
$attributes= array();
$res_array = $client->getRowsWithColumns($tableName, $row_key, $col_name, $attributes);
echo var_dump($res_array)."<br>";
//关闭连接
$transport->close();

?>

接口函数在生成的thrift php接口文件Hbase.php里面有,如果版本不一样,接口函数也可能不一样,可以直接看相应的源代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值