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

dbf7pr2w  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(372)

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

kmynzznz

kmynzznz1#

当使用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)

niwlg2el

niwlg2el2#

我也面临同样的问题。但在我的例子中,我所做的是编写引用Hadoop1.x库的java代码,并尝试使用2.x执行它。最初,我在终端上也遇到了同样的错误。然后我试着导航到我的jar文件所在的路径。成功了。
可能您实际上可以尝试以下操作:(在导航到jar文件路径之后)

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

inn6fuwd3#

如果问题仍然存在,尽管重新生成jar,但请确保在运行命令之前已授予+x(executionchmod755)特权。就我而言,这就是问题的原因。命令帮助:chmod+xjarname.jar

相关问题