У меня есть кластер hadoop на aws, и я пытаюсь получить к нему доступ из-за пределов кластера через клиента hadoop. Я могу успешно hdfs dfs -ls
и увидеть все содержимое, но когда я пытаюсь put
или get
файл я получаю эту ошибку:Доступ к hdfs извне кластера
Exception in thread "main" java.lang.NullPointerException
at org.apache.hadoop.fs.FsShell.displayError(FsShell.java:304)
at org.apache.hadoop.fs.FsShell.run(FsShell.java:289)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
У меня есть Hadoop 2.6.0 установлен как в моем кластере и моей локальной машине. Я скопировал файлы conf кластера на локальный компьютер и получил эти параметры в файле hdfs-site.xml (наряду с некоторыми другими опциями).
<property>
<name>dfs.client.use.datanode.hostname</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.enable</name>
<value>false</value>
</property>
Мой ядро-site.xml содержит одно свойство, как в кластере и клиентом:
<property>
<name>fs.defaultFS</name>
<value>hdfs://public-dns:9000</value>
<description>NameNode URI</description>
</property>
я нашел подобные вопросы, но не смог найти решение этой проблемы.
В этом вопросе не хватает деталей, чтобы помочь вам. Как вы установили утилиты командной строки hadoop на свою локальную машину? –
И ваш 'core-site.xml'? –
Итак ... Я не могу найти что-нибудь действительно онлайн, чтобы помочь с этим. Альтернативой является SSH в кластере для запуска всех команд hdfs dfs. –