为什么“hadoop -jar”命令只启动本地工作?

时间:2013-07-23 09:59:24

标签: hadoop mapreduce

我提交工作时误用“hadoop -jar”而不是“hadoop jar”。

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

有谁知道原因?或者“hadoop jar”和“hadoop -jar”命令之间的区别?

谢谢!

1 个答案:

答案 0 :(得分:2)

/ 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时,它应抛出上面编码的异常。我不确定你怎么能跑一个当地的罐子。