0

我已经在windows下成功安装了hadoop。(Namenodes 和 jobtracker 正常启动)

现在我正在尝试运行一些示例作业:

运行以下命令(在 cygwin 中)

hadoop jar $HADOOP_INSTALL/hadoop-0.20.2-examples.jar randomwriter random-data

投掷

   Exception in thread "main" java.io.IOException: Error opening job jar: /cygdrive   /c/cygwin/home/Username/hadoop/hadoop-0.20.2-examples.jar
    at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
 Caused by: java.io.FileNotFoundException: \cygdrive\c\cygwin\home\Username\hadoop\hadoop-0.20.2-examples.jar (The system cannot find the path specified)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:127)
    at java.util.jar.JarFile.<init>(JarFile.java:135)
    at java.util.jar.JarFile.<init>(JarFile.java:72)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:88)

这可能是因为 cygwin 无法识别 CLASSPATH 的事实而被抛出。

此处描述了此问题的解决方案(?)

所以,一般来说我必须执行java程序

java -classpath `cygpath -wp $CLASSPATH` [arguments]

现在,鉴于此,我应该如何结合最后一个执行上述 hadoop 命令?

4

2 回答 2

1

我意识到这篇文章已经有一年多了,但没有标记答案。你非常接近......这应该可以工作而无需编辑任何配置。

hadoop jar `cygpath -wp $HADOOP_INSTALL/hadoop-0.20.2-examples.jar` randomwriter random-data
于 2014-01-08T19:00:24.553 回答
0

编辑 $HADOOP_HOME/bin/hadoop 文件并根据您的 cygwin 要求更改调用 java 命令的最后一行。之后调用示例作为初始调用。

最后一行调用 java 是

# run it
  exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
于 2012-11-05T14:58:13.243 回答