我是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)如何修复此错误?
发布于 2012-11-12 19:31:30
您的命令要求Hadoop运行一个JAR,但却指定了一个目录。
您还向类名添加了'.java‘,这不是必需的。(假设您已经正确地编写了包名com.WordCount )。
首先在/user/vishal/WordCount.jar中构建jar (确保这是一个本地目录,而不是HDFS),然后在运行命令时在类名的末尾不带'.java‘。另外,你在你的问题中的命令末尾放了一个点,我希望在真正的命令中没有。
bin/hadoop jar /user/vishal/WordCount.jar com.WordCount /user/vishal/file01 /user/vishal/output有关更多信息,请参阅Hadoop tutorial's 'Usage' section。
https://stackoverflow.com/questions/13342851
复制相似问题