刚接触hadoopmapreduce,我不知道为什么会出现这个错误。
我现在得到: Not a valid JAR: /nfsdata/DSCluster/home/user/bli1/wordcount/wc.jar
这是我的过程:
hdfs文件结构:
/bli1
/wordcount
wc.jar
WordCount.java
/input
file01
/output
file02
在本地计算机上创建 WordCount.java
以及 wc.jar
与 jar cf wc.jar WordCount.java
在本地计算机上创建 file01
以及 file02
创建 /input
以及 /output
目录在 /wordcount
在hdfs中
使用hdfs将文件移动到其目录 hdfs dfs -moveFromLocal <localsrc> <dst>
运行命令:
hadoop jar/user/bli1/wordcount/wc.jar wordcount/user/bli1/wordcount/input/user/bli1/wordcount/output
输出:
Not a valid JAR: /user/bli1/wordcount/wc.jar
我试着做这个jar,但是我会出错。
$ hadoop com.sun.tools.javac.Main WordCount.java
Error: Could not find or load main class com.sun.tools.javac.Main
如果制作jar的过程与 jar cf wc.jar WordCount.java
那么这可能就是问题的根源。但是我不知道为什么我会得到 find or load main class error
1条答案
按热度按时间pgvzfuti1#
Liondacer,在java jar文件中,必须添加编译的*.class文件,而不是源*.java文件。
另外,一旦解决了这个问题,我认为hadoop很可能会抱怨输出目录的存在。我的意思是,hadoop希望自己创建一个这样的输出目录,它一定不存在。