1 $GLOBALS['THRIFT_ROOT'] = '/home/thrift';
2 require_once $GLOBALS['THRIFT_ROOT'].'/Thrift.php';
3 require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
4 require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
5 require_once $GLOBALS['THRIFT_ROOT'].'/transport/THttpClient.php';
6 require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';
7 require_once $GLOBALS['THRIFT_ROOT'].'/packages/Hbase/Hbase.php';
8 require_once($GLOBALS['THRIFT_ROOT'].'/packages/hadoopfs/ThriftHadoopFileSystem.php');
9
10 $socket = new TSocket(192.168.1.4, 9091);
11 $socket->setSendTimeOut(20000);
12 $socket->setRecvTimeOut(20000);
13 $transport = new TBufferedTransport($socket);
14 $protocol = new TBinaryProtocol($transport);
15 $hbase = new HbaseClient($protocol);
16 $transport->open();
17
18 // 在这里实现功能
19
20 $transport->close();
21
22 // 多记录批量提交(200提交一次时测试小记录大概在5000/s左右):
23 $rows = array('timestamp'=>$timestamp, 'columns'=>array('txt:col1'=>$col1, 'txt:col2'=>$col2, 'txt:col3'=>$col3));
24 $records = array(rowkey=>$rows,...);
25 $batchrecord = array();
26 foreach ($records as $rowkey => $rows) {
27 $timestamp = $rows['timestamp'];
28 $columns = $rows['columns'];
29 // 生成一条记录
30 $record = array();
31 foreach($columns as $column => $value) {
32 $col = new Mutation(array('column'=>$column, 'value'=>$value));
33 array_push($record, $col);
34 }
35 // 加入记录数组
36 $batchTmp = new BatchMutation(array('row'=>$rowkey, 'mutations'=>$record));
37 array_push($batchrecord, $batchTmp);
38 }
39 $ret = $hbase->mutateRows('test', $batchrecord);
40
41 // 单记录提交(1000/s左右)
42 $mutation = array(new Mutation(array('column'=>'txt:col1', 'value'=>$col1)),
43 new Mutation(array('column'=>'txt:col2', 'value'=>$col2)),
44 new Mutation(array('column'=>'txt:col3', 'value'=>$col3)));
45 $hbase->mutateRow('test', $rowkey, $mutation);
46
47 // 扫描记录
48 $result = $hbase->scannerOpenWithStop($table, $startKey, $endKey, $columns);
49 while (true) {
50 $record = $hbase->scannerGet($result);
51 if ($record == NULL) {
52 break;
53 }
54 $recordArray = array();
55 foreach($record as $TRowResult) {
56 $row = $TRowResult->row;
57 $column = $TRowResult->columns;
58 foreach($column as $family_column=>$cell) {
59 $recordArray[$family_column] = $cellVal;
60 }
61 $resultArray[] = $recordArray;
62 }
63 }
64 print_r($resultArray);
65
66 // 以下记录从别人处(佛祖球球)拷贝,把几个接口补全,(未测试...)
67
68 // 列出hbase 裡的所有 table
69 echo( "listing tables...\n" );
70 $tables = $client->getTableNames();
71 sort( $tables );
72 foreach ( $tables as $name )
73 {
74 echo $name."\n";
75 }
76
77 // 刪除table
78 $name = "test2";
79 if($client->isTableEnabled($name))
80 {
81 echo "关闭".$name."资料表\n";
82 $client->disableTable($name);
83 }
84 echo "刪除中...\n";
85 $client->deleteTable($name);
86 echo "刪除完成";
87
88 // 新增table
89 $columns = array(new ColumnDescriptor(array('name' => 'name:')),
90 new ColumnDescriptor(array('name'=> 'scores:',)));
91 $t = "test2";
92 echo("creating table: {$t}\n");
93 try
94 {
95 $client->createTable( $t, $columns );
96 }
97 catch (AlreadyExists $ae)
98 {
99 echo( "WARN: {$ae->message}\n" );
100 }
101
102 //列出table內的column family
103 $t = "results";
104 echo("column families in {$t}:\n");
105 $descriptors = $client->getColumnDescriptors( $t );
106 asort( $descriptors );
10
分享到:
相关推荐
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
本人原创, 1.Hbase连接需要改Hbase包中的两个配置文件,加上Hbase所在机器ip及端口 2.HBaseDMLT初始化环境 3.MapDataIni为建表 4.MapDataInsert为写数据 5.MapDataDelete为删除数据 6.MapDataRead为读数据
HBase基本操作 增删改查 java代码 要使用须导入对应的jar包
spring操作hbase demo
java代码使用thrift2操作hbase示例,thrift2连接hbase添加数据,单条查找,删除数据,根据扫描器查找,修改数据等测试实例
A.3实验三:熟悉常用的HBase操作 本实验对应第5章的内容。 A.3.1 实验目的 (1)理解HBase在Hadoop体系结构中的角色。(2)熟练使用HBase操作常用的 Shell命令。(3)熟悉HBase操作常用的 Java API。 A.3.2 实验平台 (1...
在集群中创建java项目调用api来操作hbase,主要涉及对hbase的创建表格,删除表格,插入数据,删除数据,查询一条数据,查询所有数据等操作。 具体流程如下: 1.创建项目 2.获取jar包到项目的lib目录下(这边试用的事...
Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据)
java操作Hbase之从Hbase中读取数据写入hdfs中源码,附带全部所需jar包,欢迎下载学习。
代码文件,C#语言编写,通过Thrift2操作Hbase库,对数据进行简单的增、删、改、查处理·。
Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错 使用这个修改完成的Hbase类替换掉原来的Hbase类问题全部解决 主要是因为python版本兼容性带来的问题
java操作Hbase之Hbase专用过滤器PageFilter的使用源代码,附带全部所需源代码,欢迎下载学习。
最近看了hbase的源码根据源码写了一些scala调动hbase表的API,话不多说直接上代码!Hadoop的版本是2.7.3,scala版本是2.1.1,hbase的版本是1.1.2 如果版本不同可以修改pom的依赖项,但要注意版本冲突。 并且在scala...
上机实操,熟悉指令操作Hbase和java代码操作Hbase 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 三、实验内容 1:指令操作Hbase (1):start-all.sh,启动所有进程 (2):start-hbase.sh...
php访问hbase时,采用thrift的方式,编译了thrift和thrift2两套代码
本代码是java链接并操作hbase的实例代码,原本供同事参考所用,引用的jar包并没有经过详细分析,可能有冗余。
hbase各种例子新增修改删除批量导入: public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); HBaseHelper helper = HBaseHelper.getHelper(conf); ...
采用Spring Boot+Hbase+kafka搭建,封装了通过JavaBean的方式操作Hbase