Hadoop Mapreduce 的新手,我不确定为什么会收到此错误。
我目前得到:
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
最佳答案
Liondancer,在 Java jar 文件中,您必须添加已编译的 *.class 文件,而不是源 *.java 文件。
另外,一旦你解决了这个问题,我认为 Hadoop 很可能会提示输出目录的存在。我的意思是,Hadoop 会期望自己创建这样一个输出目录,该目录一定不存在。
关于java - 不是来自测试 hadoop mapreduce wordcount 的有效 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261985/