运行Hadoop作业时不是有效的jar

时间:2014-11-02 11:01:57

标签: hadoop

我想运行WordCount示例。

在eclipse中它运行正常。在输出文件夹中,输出文件存在。

我制作了一个WordCount的jar文件,并希望通过命令

运行它
hadoop jar WordCount.jar /Projects/input /Projects/output

它给了我错误

Not a valid JAR: /Projects/WordCount.jar

hdfs dfs -ls /Projects

的结果
Found 3 items
-rw-r--r-- 1 hduser supergroup 3418 2014-11-02 15:38 /Projects/WordCount.jar
drwxr-xr-x - hduser supergroup 0 2014-11-02 14:13 /Projects/input
drwxr-xr-x - hduser supergroup 0 2014-11-02 14:16 /Projects/output

它也给我同样的错误

  hadoop jar /Projects/WordCount.jar wordPackage.WordCount  /Projects/input /Projects/output

 Not a valid JAR: /Projects/WordCount.jar

如何解决此错误。

我已经运行了tvf命令它给出了这个输出

 jar -tvf /home/hduser/Desktop/Files/WordCount.jar

  60 Sun Nov 02 16:10:10 PKT 2014 META-INF/MANIFEST.MF
 1895 Sun Nov 02 14:02:38 PKT 2014 wordPackage/WordCount.class
 1295 Sun Nov 02 14:02:38 PKT 2014 wordPackage/WordCount.java
 2388 Sun Nov 02 14:02:06 PKT 2014 wordPackage/WordReducer.class
 707 Sun Nov 02 14:02:06 PKT 2014 wordPackage/WordReducer.java
 2203 Sun Nov 02 14:02:08 PKT 2014 wordPackage/WordMapper.class
 713 Sun Nov 02 14:02:06 PKT 2014 wordPackage/WordMapper.java
 16424 Sun Nov 02 13:50:00 PKT 2014 .classpath
 420 Sun Nov 02 13:50:00 PKT 2014 .project

3 个答案:

答案 0 :(得分:9)

使用hadoop命令执行相同操作时,无法将jar保留在HDFS中,Jar应该在本地路径中可用

如果jar不可运行,请尝试以下(需要指定package.mainclass)

hadoop jar /home/hduser/Desktop/Files/WordCount.jar wordPackage.WordCount /Projects/input /Projects/output

如果jar可以运行,可以使用

hadoop jar /home/hduser/Desktop/Files/WordCount.jar /Projects/input /Projects/output

如果问题仍然存在,则需要再次在eclipse中重建此jar(WordCount.jar)

答案 1 :(得分:0)

即使问题仍然存在,也可以重新构建jar,但在运行命令之前,请确保已赋予+ x(execution chmod 755)特权。就我而言,这就是问题的原因。 命令帮助: chmod + x jarname.jar

答案 2 :(得分:-1)

我遇到了同样的问题。但在我的情况下,我所做的是编写了引用hadoop 1.x库的java代码,并尝试使用2.x执行它。最初,我在终端中遇到了同样的错误。然后我尝试导航到我的jar文件的路径。有效。

可能您可以尝试以下操作:(导航到jar文件路径后)

hadoop jar WordCount.jar  wordPackage.WordCount /Projects/input /Projects/output