この記事に続いて
http://nousefor.net/55/2011/12/php/hbase-and-hive-thrift-php-client/
HBase と Thrift の php クライアント パッケージをダウンロードして、ubuntu マシンの var/www/thrift/ ディレクトリに配置し、この単純なクライアント コードを記述して接続を開き、データベース内のテーブルを表示しました。しかし、サーバーは「接続がタイムアウトしました[110]」というエラーメッセージで元に戻り続けます。何か案は..??また、サーバー(Amazon EC2)で実行すると、コードは正常に実行されます$transport = new TSocket('localhost', 10001);
<?php
require_once('thrift/src/Thrift.php' );
require_once('thrift/src/transport/TSocket.php' );
require_once('thrift/src/transport/TBufferedTransport.php' );
require_once('thrift/src/protocol/TBinaryProtocol.php' );
require_once ('thrift/ThriftHive.php');
//open connection
$transport = new TSocket('107.xx.xx.101', 10001);
$protocol = new TBinaryProtocol($transport);
$client = new ThriftHiveClient($protocol);
try{
$transport->open();
}
catch(Exception $ex)
{
echo $ex->getMessage();
}
//show tables
$client->execute('SHOW TABLES');
$tables = $client->fetchAll();
foreach ($tables as $name){
echo( " found: {$name}\n" );
}
?>