简体   繁体   English

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

[英]Why “hadoop -jar” command only launch local job?

I use "hadoop -jar" rather than "hadoop jar" by mistake when I submit a job. 当我提交工作时,我错误地使用“hadoop -jar”而不是“hadoop jar”。

In this case, my jar package cannot not be submit to the clusters, and only "local job runner" will be launched, which puzzled me so much. 在这种情况下,我的jar包不能被提交到集群,只会启动“本地作业运行器”,这让我很困惑。

Anyone knows the reason for that? 谁知道原因呢? Or the difference between "hadoop jar" and "hadoop -jar" command ? 或者“hadoop jar”和“hadoop -jar”命令之间的区别?

Thank you! 谢谢!

/usr/bin/hadoop jar is what your Hadoop's $HADOOP_HOME/bin/hadoop script requires as an argument, where $HADOOP_HOME is where you have kept your hadoop related files. / usr / bin / hadoop jar是你的Hadoop的$HADOOP_HOME/bin/hadoop脚本需要作为参数,其中$ HADOOP_HOME是你保存hadoop相关文件的地方。

Excerpt from hadoop script 摘自hadoop脚本

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

and, 和,

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

Here COMMAND="jar" and when COMMAND=-*, or -jar it should throw an exception as coded above. 这里COMMAND =“jar”,当COMMAND = - *或-jar时,它应该抛出上面编码的异常。 I'm not sure how you can even run a local jar. 我不确定你怎么能跑一个本地的罐子。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM