我想运行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
答案 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