Php 错误:找不到datanode建议检查群集运行状况

Php 错误:找不到datanode建议检查群集运行状况,php,hadoop,curl,Php,Hadoop,Curl,我已经编写了以下代码,用于通过php向hdfs创建/写入文件。使用以下API作为参考 但代码出现以下错误,无法将文件上载到所需目录: {“RemoteException”:{“exception”:“IOException”,“javaClassName”:“java.io.IOException”,“message”:“找不到数据节点,建议检查群集运行状况”。} HTTP/1.1 403禁止 缓存控制:没有缓存 到期时间:2016年3月7日星期一21:28:39 GMT 日期:2016年3月7

我已经编写了以下代码,用于通过php向hdfs创建/写入文件。使用以下API作为参考

但代码出现以下错误,无法将文件上载到所需目录:

{“RemoteException”:{“exception”:“IOException”,“javaClassName”:“java.io.IOException”,“message”:“找不到数据节点,建议检查群集运行状况”。}
HTTP/1.1 403禁止
缓存控制:没有缓存
到期时间:2016年3月7日星期一21:28:39 GMT
日期:2016年3月7日星期一格林尼治时间21:28:39
Pragma:没有缓存
到期时间:2016年3月7日星期一21:28:39 GMT
日期:2016年3月7日星期一格林尼治时间21:28:39
Pragma:没有缓存
内容类型:application/json
传输编码:分块
服务器:Jetty(6.1.26)
这是我的密码:

<?php

require 'WebHDFS.php';
$hdfs = new WebHDFS ();

$hdfs -> put('/user/webuser/sample.txt', "sample \ n test \ n");
?>


我应该做什么更正?

您的hdfs数据节点似乎无法访问,并且与您的php无关

从控制台尝试创建一个没有PHP的文件夹,如下所示:

hdfs dfs -mkdir hdfs:///demofolder
我猜这将失败,因为数据节点已关闭

检查hdfs-site.xml文件以查看dfs.datanode.data.dir指向的位置,并确保该位置存在。然后在同一文件中查找dfs.datanode.address。我的是0.0.0.0:50010

尝试将telnet连接到该ip端口:

telnet 0.0.0.0 50010
您应该能够连接。如果无法连接,则需要启动数据节点。我可以通过运行:

/usr/hdp/2.1.2/hadoop-hdfs/bin/hdfs datanode
您的“HDF”的位置可能与我的不同。 假设您已经开始尝试再次创建文件夹。如果可以,请再次尝试您的php

我注意到的最后一件事是在WebHDFS.php中,它为hdfs的主机和端口设置了默认值

public function __construct($host='localhost', $port='50070') {
    $this->_host = $host;
    $this->_port = $port;
}
确保您的配置符合默认设置,除非您要覆盖它们。 祝你好运