【问题标题】:Why "hadoop -jar" command only launch local job?为什么“hadoop -jar”命令只启动本地作业?
【发布时间】:2013-07-24 14:31:59
【问题描述】:

我在提交作业时错误地使用了“hadoop -jar”而不是“hadoop jar”。

在这种情况下,我的jar包不能不提交到集群,只会启动“本地作业运行器”,这让我很困惑。

有人知道原因吗?或者“hadoop jar”和“hadoop -jar”命令的区别?

谢谢!

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    /usr/bin/hadoop jar 是您的 Hadoop 的 $HADOOP_HOME/bin/hadoop 脚本作为参数需要的,其中 $HADOOP_HOME 是您保存 hadoop 相关文件的位置。

    摘自 hadoop 脚本

    elif [ "$COMMAND" = "jar" ] ; then
      CLASS=org.apache.hadoop.util.RunJar
      HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
    

    和,

    elif [[ "$COMMAND" = -*  ]] ; then
      # class and package names cannot begin with a -
      echo "Error: No command named \`$COMMAND' was found. Perhaps you meant \`hadoop ${COMMAND#-}'"
      exit 1
    

    这里 COMMAND="jar" 并且当 COMMAND=-* 或 -jar 时,它应该抛出如上代码的异常。我不确定你怎么能运行本地 jar。

    【讨论】:

    • 感谢您的回复。我发现我的hadoop 脚本与您上面给出的不同,而没有像"$COMMAND" = -* 这样的条件。
    • 您使用的是哪个发行版/版本的 Hadoop?可能到时候我可以帮忙。
    猜你喜欢
    • 2012-04-02
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多