【问题标题】:Setting JAVA_HOME for Hadoop on Mac在 Mac 上为 Hadoop 设置 JAVA_HOME
【发布时间】:2012-07-06 12:11:33
【问题描述】:

我在 OS X 10.7 上为 Hadoop 正确设置 JAVA_HOME 时遇到问题 这是我所做的: 转到 /usr/local/Cellar/hadoop/1.0.3/libexec/conf/hadoop-env.sh 并将 JAVA_HOME 的形式更改为默认为 export JAVA_HOME=/Library/Java/Home/强> 我对 Java 也很陌生,所以即使 JAVA_HOME 也可能是错误的。 因此,通过转到 hadoop 的 bin 文件夹并运行以下命令:hadoop jar hadoop-*-examples.jar 这是我得到的讨厌的错误:

Exception in thread "main" java.io.IOException: Error opening job jar: hadoop-*-examples.jar
    at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.util.zip.ZipException: error in opening zip file
    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)

您知道我该如何解决这个问题或有什么问题吗? 如果您需要,这也是“which javac”命令的输出:/usr/bin/javac

谢谢

【问题讨论】:

    标签: macos hadoop


    【解决方案1】:

    Hadoop 示例 jar 文件是您使用的 Hadoop 版本的 hadoop-1.0.3-examples.jar`。在命令中使用正确的 jar 文件名,它应该可以工作。

    来到 JAVA_HOME,它设置正确,因为你得到一个 Java 异常,否则它会是一个不同的错误。

    希望对您有所帮助。对于那些开始使用 Hadoop 的人,这里有一个 consolidated 有用资源列表。

    【讨论】:

    • 但是当我在命令中使用通配符时,adoop-*-examples,不管版本号,它不应该工作吗?
    • 我认为 Hadoop 会寻找确切的文件名。
    • 查看tutorial。你应该以bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 运行它。确保 jar 文件位于指定位置。 Hadoop 框架找不到 jar 文件。
    【解决方案2】:

    我一定是去了“libexec”文件夹,然后运行了那个命令。

    【讨论】:

      【解决方案3】:

      我也遇到同样的问题,请检查你的 jar 文件和类名,Java 区分大小写。还要检查您的命令,每个单词之间应该有适当的空格

      现在我解决了问题.. 一切顺利

      【讨论】:

      • 这并不是问题的真正答案。像这样的帖子使用 cmets