12

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

4

1 回答 1

23

我相信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

这将my.data在 HDFS 中用户的主目录中创建一个文件。在将文件复制到 HDFS 之前,请确保首先掌握列出目录内容和目录创建。

于 2013-02-05T20:35:17.737 回答