我是hadoop新手,了解到使用2.x版本,我可以在本地Windows7 64位机器上尝试hadoop。
我安装了hadoop2.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>
我也可以运行以下命令:
$ bin/hadoop jar /Hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar
2条答案
按热度按时间rt4zxlrg1#
以前是个问题。但是,如果您能够通过jar运行程序,则可能有其他问题。如果使用java代码也可以实现同样的功能,那么可以编辑jar以删除引发新异常的代码。
为了更加确定,请检查bin目录是否包含winutils.exe和hadoop.dll。
如果他们不在场,很可能是其他人也遇到了类似的问题,他们会保留这些文件。这些文件是从操作系统上的源代码构建hadoop时创建的。
rpppsulh2#
看起来您已经安装了hadoop2.6.0和hadoopwinutils的旧版本。必须安装当前hadoop版本的hadoop winutils。尝试从此github repo下载winutilshttps://github.com/steveloughran/winutils/tree/master/hadoop-2.6.0/bin 最后用winutils bin目录替换bin目录!