PHP通过Thrift操纵Hbase
当前位置:以往代写 > 其他教程 >PHP通过Thrift操纵Hbase
2019-06-14

PHP通过Thrift操纵Hbase

PHP通过Thrift操纵Hbase

HBase是一个开源的NoSQL产物,它是实现了Google BigTable论文的一个开源产物,和Hadoop和HDFS一起,可用来存储和处理惩罚海量column family的数据。官方网址是:http://hbase.apache.org
一 、HBase会见接口

1.  Native Java API,最通例和高效的会见方法,适合Hadoop MapReduce Job并行批处理惩罚HBase表数据
2.  HBase Shell,HBase的呼吁行东西,最简朴的接口,适合HBase打点利用
3.  Thrift Gateway,操作Thrift序列化技能,支持C++,PHP,Python等多种语言,适合其他异构系统在线会见HBase表数据
4.  REST Gateway,支持REST 气势气魄的Http API会见HBase, 清除了语言限制
5.  Pig,可以利用Pig Latin流式编程语言来操纵HBase中的数据,和Hive雷同,本质最终也是编译成MapReduce Job来处理惩罚HBase表数据,适合做数据统计
6.  Hive,当前Hive的Release版本尚没有插手对HBase的支持,但在下一个版本Hive 0.7.0中将会支持HBase,可以利用雷同SQL语言来会见HBase
假如利用PHP操纵Hbase,推荐利用Facebook开源出来的thrift,官网是:http://thrift.apache.org/ ,它是一个雷同ice的中间件,用于差异系统语言间信息互换。
二、安装Thrift

在Hadoop和Hbase都已经安装好的集群上安装Thrift,Thrift安装在Hmaster呆板上
1. 下载thrift

wget http://mirror.bjtu.edu.cn/apache//thrift/0.8.0/thrift-0.8.0.tar.gz

2. 解压

tar -xzf thrift-0.8.0.tar.gz
3 .编译安装:

假如是源码编译的,首先要利用./boostrap.sh建设文件./configure ,我们这下载的tar包,自带有configure文件了。((可以查阅README文件))
If you are building from the first time out of the source repository, you will
need to generate the configure scripts.  (This is not necessary if you
downloaded a tarball.)  From the top directory, do:
./bootstrap.sh
./configure
make ; make install
4. 启动:

# ./bin/hbase-daemon.sh start thrift [–port=PORT]
starting thrift, logging to /home/banping/hbase/hbase-0.90.3/bin/../logs/hbase-root-thrift-localhost.localdomain.out
Thrift默认监听的端口是9090
利用jps查察历程,看到ThriftServer历程:

三、测试:

1 .php剧本库操纵Hbase

PHP通过Thrift会见Hbase的库是在thrift-0.8.0/lib/php/src目次下,其实这个文件夹下也包括通过Thrift会见Hbase的PHP扩展源代码。
复制thrift-0.8.0/lib/php到相应的php web目次。然后利用php剧本测试:

  • <?php  
  •   
  • ini_set(‘display_errors’, E_ALL);  
  • $GLOBALS[‘THRIFT_ROOT’] = ‘./php/src’;  
  •   
  • require_once( $GLOBALS[‘THRIFT_ROOT’] . ‘/Thrift.php’ );  
  • require_once( $GLOBALS[‘THRIFT_ROOT’] . ‘/transport/TSocket.php’ );  
  • require_once( $GLOBALS[‘THRIFT_ROOT’] . ‘/transport/TBufferedTransport.php’ );  
  • require_once( $GLOBALS[‘THRIFT_ROOT’] . ‘/protocol/TBinaryProtocol.php’ );  
  • require_once( $GLOBALS[‘THRIFT_ROOT’] . ‘/packages/Hbase/Hbase.php’ );  
  •   
  • $socket = new TSocket(‘10.64.60.83’, ‘9090’);  
  •   
  • $socket->setSendTimeout(10000); // Ten seconds (too long for production, but this is just a demo
    • 关键字:

    在线提交作业