我需要在Hadoop系统上从PHP访问HDFS,该系统在版本0.20.2 + 923.256 中使用 cloudera软件包。
有一个运行的namenode的thrift服务器 一个用于工作跟踪器。我有以下访问hdfs的功能,但是 我得到一个未知的方法“ listStatus ”错误。 HUE接口也使用thrift服务器来访问HDFS和作业跟踪器。
您可以帮助我从PHP访问该HDFS吗?那个thrift使用另一个API吗? 我没有找到该API的任何规范。
$socket = new TSocket(IP,PORT);
$socket->setSendTimeout(10000);
$socket->setRecvTimeout(20000);
$transport = new TBufferedTransport($socket);
$protocol = new TBinaryProtocol($transport);
$client = new ThriftHadoopFileSystemClient($protocol);
$transport->open();
$pathname = new Pathname(array('pathname' => $file));
$result = $client->listStatus($pathname);
echo($result[0]->path);
$transport->close();
return $result;
非常感谢!