1

我是 Hadoop MapReduce 的新手。当我尝试使用以下命令运行我的 MapReduce 代码时:

vishal@XXXX bin/hadoop jar /user/vishal/WordCount com.WordCount.java /user/vishal/file01 /user/vishal/output.

它显示以下输出:

   Exception in thread "main" java.io.IOException: Error opening job jar: /user/vishal/WordCount.jar     
    at org.apache.hadoop.util.RunJar.main(RunJar.java:130)          
    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:131)    
    at java.util.jar.JarFile.<init>(JarFile.java:150)    
    at java.util.jar.JarFile.<init>(JarFile.java:87)    
    at org.apache.hadoop.util.RunJar.main(RunJar.java:128)

我该如何解决这个错误?

4

1 回答 1

1

您的命令要求 Hadoop 运行 JAR,但指定的是目录。

您还在类名中添加了“.java”,这不是必需的。(这是假设你com.WordCount正确地写了包名 , )。

首先在其中构建 jar /user/vishal/WordCount.jar(确保这是本地目录,而不是 HDFS),然后运行类名末尾不带“.java”的命令。另外,您在问题的命令末尾加了一个点,我希望在真正的命令中不存在。

bin/hadoop jar /user/vishal/WordCount.jar com.WordCount /user/vishal/file01 /user/vishal/output

有关更多信息,请参阅Hadoop 教程的“使用”部分

于 2012-11-12T11:31:30.107 回答