使用Virtualbox的Hortonworks Hadoop - 执行一个jar

时间:2016-05-04 17:27:00

标签: java eclipse maven hadoop jar

我是一个hadoop初学者。因此,我尝试处理简单的例子来了解环境。所以我创建了一个执行wordcount的jar - 其中包括这个Hadoop: Set up Maven project in 5 Minutes。我的问题:我不可能在我的Hortonworks Sandbox上执行.jar。每次我收到错误:

  

警告:使用"纱瓶"推出YARN应用程序   不是有效的JAR:/user/maria_dev/wordcount3.jar

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

  1. 使用maven项目在eclipse中创建java类。
  2. 导出可运行的jar文件。
  3. 将jar加载到HDFS(使用Ambari)。
  4. 使用(使用root用户,也可以尝试使用和不使用ssh)调用jar:
  5. 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应用程序运行时,我得到以下错误之一:
    2.   

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

      OR

        
          

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

        
      1. 我读到jar文件不必上传到HDFS。那么必须将它加载到虚拟盒的本地文件中吗?如果是:我该怎么做?
      2. Hadoop版本:2.7.1.2.4.0.0-169

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

1 个答案:

答案 0 :(得分:0)

在虚拟机中,打开Linux终端

su - ambari-qa

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

纱瓶/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

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

你需要将你的代码作为纱线罐子运行....