我试图将文本文件添加到HDFS文件系统中,但是Hadoop拒绝了它,并显示错误消息“无此文件或目录”。
$ bin/hdfs dfs -put /home/NDelt/Datasets/SampleText.txt /home/NDelt/HadoopDir/hdata
put: `/home/NDelt/HadoopDir/hdata': No such file or directory: `hdfs://localhost:9000/home/NDelt/HadoopDir/hdata'
但是SampleText.txt
和hdata
目录的路径正确。有什么问题吗?
这是我的hdfs-site.xml文件:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/NDelt/HadoopDir/hdata/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/NDelt/HadoopDir/hdata/dfs/datanode</value>
</property>
</configuration>
答案 0 :(得分:2)
正如cricket_007所述,HDFS中没有/ home目录。
如何测试hdfs put
$ bin / hdfs dfs -put /home/NDelt/Datasets/SampleText.txt / tmp
并测试文件是否通过以下方式添加到HDFS中:
$ bin / hdfs dfs -get /tmp/SampleText.txt
如果文件内容较小,还可以查看内容
$ bin / hdfs dfs -cat /tmp/SampleText.txt
答案 1 :(得分:1)
在HDFS上,没有/home
目录
您在HDFS中的用户帐户将位于/user
下
您需要使用hdfs mkdir -p
显式创建要首先放置文件的HDFS父路径
也不需要将本地文件系统完全匹配到HDFS中