Ошибка: не удалось найти датодел, предложить проверить работоспособность кластера

Я написал следующий код для создания / записи файла в hdfs через php. Использовал следующий API для справки https://github.com/Yujiro3/WebHDFS

Но код выдает следующую ошибку и не может загрузить файл в требуемый каталог:

{"RemoteException":{"exception":"IOException","javaClassName":"java.io.IOException","message":"Failed to find datanode, suggest to check cluster health."}
HTTP/1.1 403 Forbidden
Cache-Control: no-cache
Expires: Mon, 07 Mar 2016 21:28:39 GMT
Date: Mon, 07 Mar 2016 21:28:39 GMT
Pragma: no-cache
Expires: Mon, 07 Mar 2016 21:28:39 GMT
Date: Mon, 07 Mar 2016 21:28:39 GMT
Pragma: no-cache
Content-Type: application/json
Transfer-Encoding: chunked
Server: Jetty(6.1.26)

Вот мой код:

<?php

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

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

Какую коррекцию я должен сделать?

0

Решение

Кажется, что ваша база данных 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

Расположение ваших «hdfs» может отличаться от моего.
Предполагая, что у вас это началось, попробуйте снова создать папку. Если это работает, попробуйте ваш php снова.

Последнее, что я заметил, было в файле WebHDFS.php по умолчанию для хоста и порта для hdfs.

public function __construct($host='localhost', $port='50070') {
$this->_host = $host;
$this->_port = $port;
}

Убедитесь, что ваши конфигурации соответствуют значениям по умолчанию, если вы не собираетесь их переопределять.
Удачи.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]