【问题标题】:Hortonworks Hadoop using Virtualbox - Execute a jarHortonworks Hadoop 使用 Virtualbox - 执行一个 jar
【发布时间】:2016-08-30 06:43:04
【问题描述】:

我是一个 hadoop 初学者。因此,我尝试处理简单的示例以了解环境。所以我创建了一个执行字数统计的 jar - 其中包括 Hadoop: Set up Maven project in 5 Minutes。我的问题:我无法在我的 Hortonworks Sandbox 中执行 .jar。每次我得到错误:

警告:使用“yarn jar”启动 YARN 应用程序。
不是一个有效的 JAR:/user/maria_dev/wordcount3.jar

要启动 jar,我执行了以下步骤:

  1. 使用 maven 项目在 eclipse 中创建 java 类。
  2. 导出可运行的 jar 文件。
  3. 将 jar 加载到 HDFS(使用 Ambari)。
  4. 使用(使用 root 用户,也尝试使用和不使用 ssh)调用 jar:

hadoop jar /user/maria_dev/wordcount3.jar /user/maria_dev/BlackArrow.txt /user/maria_dev/

hadoop jar /user/maria_dev/wordcount3.jar de.kja. wordcount3. wordcount /user/maria_dev/BlackArrow.txt /user/maria_dev/

在这两种情况下,我都会从上面得到错误...

所以我有以下想法:

  1. 我的 java 类有一个错误 -> 我尝试了各种其他示例,但都不起作用。但是尝试将每个 java 文件的主类作为 java 应用程序运行,我得到以下错误之一:

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 0 在 de.kja.wordcount2.wordcount.main(wordcount.java:47)

用法:WordCount [通用选项] 支持的通用选项有 -conf 指定应用程序配置文件 -D 给定属性的使用价值 -fs 指定一个名称节点 -jt 指定作业跟踪器 -files 指定要复制到 map reduce 集群的逗号分隔文件 -libjars 指定要包含在类路径中的逗号分隔的 jar 文件。 -archives 指定要在计算机上取消存档的逗号分隔存档。这 一般命令行语法是 bin/hadoop 命令 [genericOptions] [命令选项]

  1. 我读到 jar 文件不必上传到 HDFS。那么一定要把它加载到虚拟盒子的本地文件中吗?如果是:我该怎么做?

Hadoop 版本:2.7.1.2.4.0.0-169

如果您需要更多信息,请询问!谢谢你的帮助:)

【问题讨论】:

    标签: java eclipse maven hadoop jar


    【解决方案1】:

    在您的虚拟机中,打开 Linux 终端

    su - ambari-qa

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen 1000 /tmp/genout

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar terasort /tmp/genout /tmp/sortout

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teravalidate /tmp/sortout /tmp/valout

    这是确保您能够从沙盒运行作业的示例。

    您需要将代码作为 yarn jar .... 运行。

    【讨论】:

    • 感谢您的帮助!可悲的是我不能运行罐子。我收到一个错误,说这个 jar 不存在:[root@sandbox ~]# su - ambari-qa[ambari-qa@sandbox ~]$ yarn jar /usr/iop/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen 1000 /tmp/genout Not a valid JAR: /usr/iop/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar [ambari-qa@sandbox ~]$ cd / [ambari-qa@sandbox /]$ cd usr [ambari-qa@sandbox usr]$ ls bin etc games hdp include lib lib64 libexec local sbin share src tmp [ambari-qa@sandbox usr]$
    • 我在上面的评论中更新了路径。路径是/usr/hdp/current/hadoop-mapreduce-client/。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多