不是来自测试 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
  1. 在本地计算机 WordCount.javawc.jar 上使用 jar cf wc.jar WordCount.java
  2. 创建
  3. 在本地计算机上创建 file01file02
  4. 在 hdfs/wordcount 中创建 /input/output 目录
  5. 使用 hdfs 将文件移动到它们的目录

    • hdfs dfs -moveFromLocal <localsrc> <dst>
  6. 运行 命令:

    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 会期望自己创建这样一个输出目录,该目录一定不存在。