【问题标题】:hadoop/bin/hadoop doesn't have the example jarhadoop/bin/hadoop 没有示例jar
【发布时间】:2014-03-12 12:33:13
【问题描述】:

我安装了 hadoop 2.2.0 并尝试运行示例 wordcount 程序。为此,我首先使用以下方法将数据导入 hdfs:

bin/hadoop fs -copyFromLocal /home/prassanna/Desktop/input /input

之后,我尝试使用以下命令运行字数统计 jar 文件:

root@prassanna-Studio-1558:/usr/local/hadoop# bin/hadoop jar hadoop*examples*.jar wordcount /input -output

但它显示:Not a valid JAR: /usr/local/hadoop/hadoop*examples*.jar

我检查了usr/local/hadoop/bin/hadoop目录,没有hadoop示例jar。

【问题讨论】:

  • 您找到的示例是针对 hadoop 2.2.0 还是以前的版本?你学了什么教程?
  • 您确定 JAR 文件名吗?

标签: hadoop


【解决方案1】:

您要查找的Jar 文件在此目录中:

hadoop_root/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

并且应该使用这样的命令运行:

$ yarn jar hadoop_root/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output

【讨论】:

  • 我在以下目录 usr/local/hadoop/share/hadoop/mapreduce 中找到了 hadoop-mapreduce-examples-2.2.0.jar 但是当我尝试运行 root@prassanna-Studio- 1558:/usr/local/hadoop# bin/yarn jar /usr/local/hadoop/share/hadoop/mapreducehadoop-mapreduce-examples-2.2.0.jar wordcount /input /output 但出现以下错误 Not a valid JAR: /usr/local/hadoop/share/hadoop/mapreducehadoop-mapreduce-examples-2.2.0.jar,请帮忙运行一下
  • 您显然缺少/!你应该这样使用它:bin/yarn jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output
  • 嗨 SAM,我像这样使用 root@Prassanna:usr/local/hadoop:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /输出,它工作正常。我浏览并签入了 UI,它还显示了所有带有字数的文件
  • @user2631600 我很高兴知道这一点。如果这是您问题的答案,请将其标记为答案。
【解决方案2】:

Hadoop 示例 jar 不再存在。

usr/local/hadoop/bin/hadoop

从 hadoop 版本 2.x 开始,正如 SAM 在他的回答中正确指出的那样,您正在寻找的 jar 是

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

你可以像这样运行它,

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output

确保/input 文件夹有一个输入文件要计入 hdfs。另请注意,/output 应该存在。这是为hadoop框架创建的。

另外请参考本文档以使用 Hadoop2.2.0 Shell 命令。不使用已弃用的版本始终是一个好习惯。

http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/FileSystemShell.html

【讨论】:

    【解决方案3】:

    在我的 hadoop 中,我在 2.4.1 中工作,所以命令是

    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /input /output

    【讨论】:

      【解决方案4】:

      你必须编译 WordCount.java 然后 JAR 它如下。我不得不四处寻找lib路径,但最后我能够使用它来编译示例类

      [apesa@localhost ~]$ javac -classpath $HADOOP_HOME/apesa/hadoop/common/hadoop-common-2.2.0.jar:$HADOOP_HOME/apesa/hadoop/mapreduce/hadoop-mapreduce-client-core-2.2.0.jar:$HADOOP_HOME/apesa/hadoop/common/lib/commons-cli-1.2.jar -d wordcount_classes WordCount.java
      

      然后JAR如下

      [apesa@localhost ~]$ jar -cvf wordcount.jar -C wordcount_classes/ . 
      

      我已经有一段时间没有运行它了,但是如果出现错误,您可能需要验证 lib 文件是否在同一个位置

      【讨论】:

        猜你喜欢
        • 2017-04-29
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多