不是来自测试 hadoop mapreduce wordcount 的有效 JAR
Not a valid JAR from testing hadoop mapreduce wordcount
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
- 在 hdfs
/wordcount
中创建 /input
和 /output
目录
使用 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 会期望自己创建这样一个输出目录,该目录一定不存在。
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
- 在 hdfs
/wordcount
中创建/input
和/output
目录 使用 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 会期望自己创建这样一个输出目录,该目录一定不存在。