ini_set('display_errors', E_ALL);
$GLOBALS['THRIFT_ROOT'] = "/home/t_qmw/project_hbase";
/* Dependencies. In the proper order. */
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Transport/TTransport.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Transport/TSocket.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Protocol/TProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Protocol/TBinaryProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Protocol/TBinaryProtocolAccelerated.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Transport/TBufferedTransport.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Type/TMessageType.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Factory/TStringFuncFactory.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/StringFunc/TStringFunc.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/StringFunc/Core.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Type/TType.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Exception/TException.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Exception/TTransportException.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/Thrift/Exception/TProtocolException.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/gen-php/Hbase/Types.php';
require_once $GLOBALS['THRIFT_ROOT'] . '/gen-php/Hbase/Hbase.php';
use Thrift\Protocol\TBinaryProtocol;
use Thrift\Transport\TBufferedTransport;
use Thrift\Transport\TSocket;
use Hbase\HbaseClient;
use Hbase\ColumnDescriptor;
use Hbase\Mutation;
$host='localhost';
$port='9090';
$socket = new TSocket($host, $port);
$socket->setSendTimeout(10000); // 发送超时,单位毫秒
$socket->setRecvTimeout(20000); // 接收超时,单位毫秒
$transport = new TBufferedTransport($socket);
$protocol = new TBinaryProtocol($transport);
$client = new HbaseClient($protocol);
$transport->open();
####列出表####
// echo "----list tables----\n";
$tables = $client->getTableNames();
// var_dump($tables);
// foreach ($tables as $name) {
// var_dump($tables);
// }
$table='shop:filter';
// $startRow='1';
// $scan = $client->scannerOpen($tablename, null, array ('column' => 'attr_id:1337', 'column'=>'attr_id:1443'), null);
// // $scan = $client->scannerOpen($tablename, $startRow, $columns, null);
// $nbRows = 4000;
// $arr = $client->scannerGetList($scan, $nbRows);
// echo 'count of result :'.count($arr)."\n";
// var_dump($arr);
// foreach ($arr as $k => $TRowResult) {
// echo "\trow:$TRowResult->row\tcolumns(array):";
// foreach ($TRowResult->columns as $key => $value) {
// echo "key:$key\tvalue:$value->value\ttimestamp:$value->timestamp\n";
// }
// }
# 过滤器
$filter = array();
$filter[] = "ValueFilter(=,'substring:cat_id:7|sub_cat:65')";
$filterString = implode(" AND ", $filter);
$scanFilter = new \Hbase\TScan();
$scanFilter->columns=array('attr_id:1325','attr_id:1356','brand_id:94');
$scanFilter->filterString =$filterString;
$scanFilter->startRow = 'p:1';
$scanFilter->stopRow = 'p:5000';
// $scanFilter->columns = array('column' => 'author'); # 指定返回列族
$scan = $client->scannerOpenWithScan($table, $scanFilter, array());
$ret = $client->scannerGetList($scan,20);
//2代表数量
var_dump($ret);
$transport->close();
?>