我不知道这里发生了什么,但我试图将一个简单的文件从我本地文件系统的目录复制到为hdfs指定的目录。
在我的hdfs-site.xml中,我已使用以下属性指定hdfs的目录为/ home / vaibhav / Hadoop / dataNodeHadoopData -
<name>dfs.data.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>
and
<name>dfs.name.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>
我正在使用以下命令 -
bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data /home/vaibhav/Hadoop/dataNodeHadoopData
将文件u.data从其本地文件系统位置复制到我指定为Hdfs目录的目录。但是,当我这样做时,没有任何反应 - 没有错误,没有。并且没有文件被复制到hdsf。难道我做错了什么?任何权限问题可能都存在吗?
需要建议。
我正在使用伪分布式单节点模式。
另外,在相关的说明中,我想问一下,在我的map reduce程序中,我已将配置设置为指向inputFilePath为/home/vaibhav/ml-100k/u.data。那么它不会自动将文件从给定位置复制到hdfs吗?
答案 0 :(得分:18)
我相信dfs.data.dir
和dfs.name.dir
必须指向两个不同的现有目录。此外,请确保在更改配置中的目录后格式化了namenode FS。
复制到HDFS时,您错误地指定了目标。将本地文件复制到HDFS的正确语法是:
bin/hadoop dfs -copyFromLocal <local_FS_filename> <target_on_HDFS>
示例:
bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data my.data
这将在HDFS的用户主目录中创建一个文件my.data
。
在将文件复制到HDFS之前,请确保首先掌握列出目录内容和目录创建。