测试hadoop mapreduce wordcount不是有效的JAR

时间:2015-03-25 17:05:01

标签: java hadoop jar mapreduce

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.java
  2. 在本地计算机wc.jarjar cf wc.jar WordCount.java上创建
  3. 在本地计算机file01file02
  4. 上创建
  5. 在hdfs中的/input内创建/output/wordcount目录
  6. 使用hdfs将文件移动到目录

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

    hadoop jar /user/bli1/wordcount/wc.jar WordCount / user / bli1 / wordcount / input / user / bli1 / wordcount / output

  8. 输出:

    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 个答案:

答案 0 :(得分:1)

Liondancer,在Java jar文件中,您必须添加已编译的* .class文件,而不是源* .java文件。

此外,一旦解决了问题,我想Hadoop很可能会抱怨输出目录的存在。我的意思是,Hadoop希望自己创建一个输出目录,它必须不存在。