public function actionIndex1() { require_once dirname(\Yii::$app->basePath) . '/Hbase/Hbase.php'; require_once dirname(\Yii::$app->basePath) . '/Hbase/Types.php'; //'/Hbase/THBaseService.php'; /* * * Thrift Test */ $host = '192.168.186.128'; $port = 9090; $socket = new TSocket($host, $port); $socket->setRecvTimeout(10 * 1000); $transport = new TBufferedTransport($socket); $protocol = new TBinaryProtocol($transport); // Create a client $client = new \Hbase\HbaseClient($protocol); $transport->open(); //获得数据表 //$tables = $client->getTableNames(); //创建一个表 //定义列名 $tableName = 'messages'; //$aritcle = new \Hbase\ColumnDescriptor(array('name' => 'aritcle:')); //$author = new \Hbase\ColumnDescriptor(array('name' => 'author:')); //$columns = array($aritcle, $author); //try { // $client->createTable($tableName, $columns); //} catch (\Hbase\AlreadyExists $ex) { // echo '表已经存在,不能重复创建'; //} //删除已经存在的表 //向表内插入数据 //for ($i = 0; $i < 10000; $i++) { // $record = array(new \Hbase\Mutation(array('column' => 'aritcle:title', 'value' => $i))); // $client->mutateRow($tableName, $i, $record,[]); //} //获得数据 $arr = $client->get($tableName, 2, 'aritcle:title', []); // $arr = array foreach ($arr as $k => $v) { // $k = TCell echo "value = {$v->value} , <br> "; echo "timestamp = {$v->timestamp} <br>"; } $transport->close(); exit; //HOW TO GET $tableName = "test_table"; $column_1 = new \TColumn(); $column_1->family = 'cf1'; $column_1->qualifier = 'q1'; $column_2 = new \TColumn(); $column_2->family = 'cf1'; $column_2->qualifier = 'q2'; $columnArray = array($column_1, $column_2); $get = new \TGet(); $get->row = 'a'; $get->columns = $columnArray; if ($client->exists($tableName, $get)) { echo 'Yes'; } else { echo 'No'; } exit; print_r($tables); exit; $arr = $client->get($tableName, $get); $results = $arr->columnValues; foreach ($results as $result) { $qualifier = (string) $result->qualifier; $value = $result->value; print_r($qualifier); print_r($value); } //HOW TO SCAN $scan = new \TScan(); $scan->startRow = 'a'; $scan->stopRow = 'z'; $scan->columns = $columnArray; $num = 1000; $scanRets = $client->getScannerRows($scanId, $num); foreach ($scanRets as $scanRet) { $scan_row = $scanRet->row; $scan_cols = $scanRet->columnValues; print_r($scan_row); print_r($scan_cols); } $client->closeScanner($scanId); $transport->close(); echo 11; exit; }