【发布时间】:2014-01-23 21:22:46
【问题描述】:
我需要从 PHP 访问 Hadoop 系统上的 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;
非常感谢!
【问题讨论】:
-
你有解决这个问题的办法吗?