使用Hadoop 2.6.0在Windows上运行wordcount Hadoop示例

使用Hadoop 2.6.0在Windows上运行wordcount Hadoop示例,hadoop,mapreduce,word-count,Hadoop,Mapreduce,Word Count,我是Hadoop新手,了解到使用2.x版本,我可以在本地Windows7 64位机器上尝试Hadoop。 我安装了hadoop 2.6.0和cygwin。 我可以执行bin/hadoop版本,但在执行jar命令时出现以下错误: 注意:我还将winutils.jar放在了hadoop-common-2.2.0.jar中的bin中。请帮忙。我无法摆脱这个错误。我还输入了输入和输出参数,但仍然失败 $ bin/hadoop jar /Hadoop/hadoop-2.6.0/share/hadoop/m

我是Hadoop新手,了解到使用2.x版本,我可以在本地Windows7 64位机器上尝试Hadoop。 我安装了hadoop 2.6.0和cygwin。 我可以执行bin/hadoop版本,但在执行jar命令时出现以下错误: 注意:我还将winutils.jar放在了hadoop-common-2.2.0.jar中的bin中。请帮忙。我无法摆脱这个错误。我还输入了输入和输出参数,但仍然失败

$ bin/hadoop jar /Hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount
15/02/03 12:40:45 ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:355)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:370)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:363)
at org.apache.hadoop.util.GenericOptionsParser.preProcessForWindows
(GenericOptionsParser.java:438)
at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions
(GenericOptionsParser.java:484)
at org.apache.hadoop.util.GenericOptionsParser.<init>
(GenericOptionsParser.java:170)
at org.apache.hadoop.util.GenericOptionsParser.<init>   
(GenericOptionsParser.java:153)
at org.apache.hadoop.examples.WordCount.main(WordCount.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke
(ProgramDriver.java:71)
at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)
at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Usage: wordcount <in> [<in>...] <out>

这以前是个问题。但是,如果您能够通过jar运行程序,那么可能还有其他问题。 如果使用Java代码同样适用于您,那么您可以编辑jar以删除引发新异常的代码

为了更加确定,请检查bin目录是否包含winutils.exe和hadoop.dll


如果他们不在场,很可能是其他人也遇到了类似的问题,他们会保留这些文件。这些文件是从操作系统上的源代码构建Hadoop时创建的。

看起来您已经安装了Hadoop 2.6.0和Hadoop winutils的旧版本。必须安装当前hadoop版本的hadoop winutils。尝试从此github repo下载winutils
最后用winutils bin目录替换您的bin目录

您好,我手动复制了winutils.exe。hadoop.dll不存在,我复制了它,但仍然存在相同的错误。我是否需要将HADOOP_HOME设置在某个地方,因为它在一个空位置查找null\bin\winutils.exe?不应该是这样,因为jar运行正常。尝试将HADOOP_HOME设置为HADOOP安装目录。另外,您从何处复制了winutils?我尝试在cygwin客户端以及HADOOP-env.sh上设置HADOOP_HOME,但没有帮助。我从网上找到的名为hadoop-common-2.2.0-bin-master.zip的zip文件中复制了winutils。令人惊讶的是,我尝试运行数独作业,但没有出现任何错误。$bin/hadoop-jar/hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar数独在命令行中包含一个谜题。所以,我想这与GenericOptionsParser有关
$ bin/hadoop jar /Hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar