0

我是 hadoop 新手,有点困惑。我的版本是 2.1.0-beta,我遵循了集群设置指南(http://hadoop.apache.org/docs/stable/cluster_setup.html)。

我正在尝试运行http://wiki.apache.org/hadoop/WordCount中的 wordcount 示例。该命令 ./hadoop dfs -copyFromLocal /home/user/input/inputfile /opt/hdfsdata/ 给了我:

不推荐使用:不推荐使用此脚本执行 hdfs 命令。而是使用 hdfs 命令。

13/09/22 20:41:06 WARN conf.Configuration:错误的 conf 文件:元素不是 13/09/22 20:41:06 WARN util.NativeCodeLoader:无法为您的平台加载 native-hadoop 库...使用适用的内置 java 类 13/09/22 20:41:06 WARN conf.Configuration:错误的 conf 文件:元素不是 13/09/22 20:41:06 WARN conf.Configuration:错误的 conf 文件:元素不是 copyFromLocal: `/opt/hdfsdata/': 没有这样的文件或目录

/opt/hdfsdata 确实存在。

谢谢你的任何提示!

4

2 回答 2

2

/opt/hdfsdata可能代表本地 FS 上的路径,而命令copyFromLocal需要 HDFS 路径。确保在您的 HDFS 上存在此路径,或者有权在 HDFS 中创建它。

如果要将其与本地 FS 一起使用,请使用具有正确方案的完整路径: file:///opt/hdfsdata。但是你为什么要为此使用 HDFS 命令。正常cp有什么问题??

回应您的评论:

您已将该文件复制到本地 FS中,即file:///opt/hdfsdata/,但您的工作是在 HDFS 中查找此路径。这就是您收到此错误的原因。这就是为什么dfs -ls没有显示任何内容的原因。将文件复制到 HDFS 中或使用作业中的本地路径。

尝试这个 :

bin/hadoop fs -mkdir /opt/hdfsdata/

bin/hadoop fs -copyFromLocal /home/user/input/inputfile /opt/hdfsdata/

Now run your job.

此外,在运行 HDFS shell 命令时无需使用 hdfs:/。

于 2013-09-22T18:07:36.977 回答
0

通过以下链接,它将为您提供 wordcount 程序的解决方案。

http://cs.smith.edu/dftwiki/index.php/Hadoop_Tutorial_1_---_Running_WordCount#Basic_Hadoop_Admin_Commands

或者

运行以下命令,,

hadoop dfs -ls /opt/hdfsdata 
/**if this command return your /opt/hdfsdata is directory then you can 
 easily write your file into hdfsdata directory. */

如果此命令没有返回此类文件或目录,请在命令下方运行。

hadoop dfs -mkdir /opt/hdfsdata
于 2013-09-23T10:09:44.353 回答