使用copyFromLocal开关将数据移动到hdfs

时间:2013-02-05 09:57:38

标签: hadoop hdfs

我不知道这里发生了什么,但我试图将一个简单的文件从我本地文件系统的目录复制到为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吗?

1 个答案:

答案 0 :(得分:18)

我相信dfs.data.dirdfs.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之前,请确保首先掌握列出目录内容和目录创建。