0

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

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

任何人都知道其中的原因吗?或者“hadoop jar”和“hadoop -jar”命令之间的区别?

谢谢!

4

1 回答 1

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 时,它应该抛出一个异常,如上代码所示。我不确定你甚至可以如何运行本地 jar。

于 2013-07-23T11:44:27.647 回答