<?php
$GLOBALS['THRIFT_ROOT'] = 'thrift';
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( 'localhost',9090 ); $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 HbaseClient( $protocol );
$transport->open();
echo "start ...rn"; echo "check table existrn";
$t = 'test_table'; $table = $client->getTableNames();
print_r($table);
/** foreach ($table as $value){ if($value == $t){ echo "find $t,delete itrn"; if($client->isTableEnabled($value)){ echo "disabling $trn"; $client->disableTable($value); } echo "deleting $trn"; $client->deleteTable($value); } }
echo "Create new table $trn";
$aritcle = new ColumnDescriptor(array('name'=>'aritcle:')); $author = new ColumnDescriptor(array('name'=>'author:')); $columns = array($aritcle,$author);
echo "Creating table $trn"; try { $client->createTable($t,$columns); } catch (AlreadyExists $ae){ echo "$aern"; }
**/
echo "Start insert some recordsrn";
$record1 = array(new Mutation(array('column'=>'aritcle:title','value'=>'hello,world!'))); $record2 = array(new Mutation(array('column'=>'aritcle:content','value'=>'welcome to hbase')));
$client->mutateRow($t,'1',$record1); $client->mutateRow($t,$record2); /** echo "In sert 1000 recordsrn"; $time_start = microtime_float();
for ($i=0;$i<10000;$i++){ $record = array(new Mutation(array('column'=>'aritcle:title','value'=>$i))); $client->mutateRow($t,$i,$record); }
$time_end = microtime_float(); $time = $time_end - $time_start;
echo "Did nothing in $time secondsn";
echo "rand read row rn"; **/ $row = $client->getRow($t,rand(1,10000)); print_r($row);
$row = $client->getRowWithColumns($t,1,'aritcle:'); print_r($row);
$transport->close();
function microtime_float() { list($usec,$sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); }
?>
----------------------------------------------------
// 列出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 );
??
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|