我在aws上有一个hadoop群集,我试图通过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'命令。 –