使用Hadoop2.6.0在windows上运行wordcount hadoop示例

jckbn6z7  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(489)

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

  1. $ bin/hadoop jar /Hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount
  2. 15/02/03 12:40:45 ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
  3. java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  4. at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:355)
  5. at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:370)
  6. at org.apache.hadoop.util.Shell.<clinit>(Shell.java:363)
  7. at org.apache.hadoop.util.GenericOptionsParser.preProcessForWindows
  8. (GenericOptionsParser.java:438)
  9. at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions
  10. (GenericOptionsParser.java:484)
  11. at org.apache.hadoop.util.GenericOptionsParser.<init>
  12. (GenericOptionsParser.java:170)
  13. at org.apache.hadoop.util.GenericOptionsParser.<init>
  14. (GenericOptionsParser.java:153)
  15. at org.apache.hadoop.examples.WordCount.main(WordCount.java:70)
  16. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  17. at sun.reflect.NativeMethodAccessorImpl.invoke
  18. (NativeMethodAccessorImpl.java:39)
  19. at sun.reflect.DelegatingMethodAccessorImpl.invoke
  20. (DelegatingMethodAccessorImpl.java:25)
  21. at java.lang.reflect.Method.invoke(Method.java:597)
  22. at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke
  23. (ProgramDriver.java:71)
  24. at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)
  25. at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74)
  26. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  27. at sun.reflect.NativeMethodAccessorImpl.invoke
  28. (NativeMethodAccessorImpl.java:39)
  29. at sun.reflect.DelegatingMethodAccessorImpl.invoke
  30. (DelegatingMethodAccessorImpl.java:25)
  31. at java.lang.reflect.Method.invoke(Method.java:597)
  32. at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
  33. at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
  34. Usage: wordcount <in> [<in>...] <out>

我也可以运行以下命令:

  1. $ bin/hadoop jar /Hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar
rt4zxlrg

rt4zxlrg1#

以前是个问题。但是,如果您能够通过jar运行程序,则可能有其他问题。如果使用java代码也可以实现同样的功能,那么可以编辑jar以删除引发新异常的代码。
为了更加确定,请检查bin目录是否包含winutils.exe和hadoop.dll。
如果他们不在场,很可能是其他人也遇到了类似的问题,他们会保留这些文件。这些文件是从操作系统上的源代码构建hadoop时创建的。

rpppsulh

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目录!

相关问题