hadoop streaming无效的DFS目录名称

时间:2017-05-27 08:52:19

标签: php windows hadoop

我仍然是hadoop的新人,我试图让this example工作。

我能够设置hadoop并运行wordcount mapreduce示例,一切都很好。但是,当我使用java.lang.IllegalArgumentException: Invalid DFS directory name

hadoop上运行streaming command windows 7时,我收到hadoop 2.6.0个例外

这是我的命令:

hadoop jar %HADOOP_PREFIX%\share\hadoop\tools\lib\hadoop-streaming-2.6.0.jar -mapper mapper.php -reducer reducer.php -input input/* -output output

如果我从say文件夹d:\hadoop运行命令,则显示的错误变为:

java.lang.IllegalArgumentException: Invalid DFS directory name /d:/hadoop

在显示错误并且作业失败之前创建输出目录。

我尝试搜索命令来设置分布式文件的位置,但我没有找到类似的东西。

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

输入和输出路径应为hdfs而不是local filesytem路径。您提供的输入路径为d:/hadoop <{1}}

您必须在local filesystem中找到路径(它们通常位于hdfs

假设您的/user/<hadoop username>hadoop user,则应用以下命令可以为您提供Ahmed主页中的所有目录和文件

hdfs

相当于

hadoop dfs -ls

因此跟踪hdfs文件位置并将其传递给hadoop dfs -ls /user/Ahmed/ as(假设-input argument是路径)

/user/Ahmed/input

答案 1 :(得分:0)

感谢Ramesh,我注意到我的hdfs命令在当前目录上运行,而不是在hdfs位置。所以像“hdfs dfs -ls /”这样的命令列出了我所在的目录,而不是hadoop分布式文件系统上的内容。

结果是一个问题。我必须确保在core-site.xml和hdfs-site.xml中正确设置fs.defaultFS