一直在为这个挠头。我刚刚开始使用 PHP/Thrift 与 HBase 进行通信(我可以用 Python 做得很好)。出于某种原因,下面的代码正在生成 $client = new 行上找不到的类“HbaseClient”:
$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'] . '/Hbase/Hbase.php' );
try
{
$socket = new TSocket('127.0.0.1', 9090);
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocolAccelerated($transport);
$client = new HbaseClient( $protocol );
$transport->open();
}
catch (Exception $e)
{
echo "Exception: %e\r\n";
}
我真的不知道为什么。在 Hbase.php 包含文件中,客户端定义如下:
class HbaseClient implements \Hbase\HbaseIf {
我在这里错过了一些非常简单的东西吗?(完整的 HBase.php:http: //pastebin.com/6kd9r2Se)
提前致谢!