提交 hadoop-streaming 作业:yarn 还是 hadoop?

submitting hadoop-streaming jobs: yarn or hadoop?

使用 yarn jar 命令和使用 hadoop jar 命令提交 hadoop-streaming 作业有什么区别?

这是来自 current documentation:

hadoop jar hadoop-streaming-2.7.1.jar \
  -D mapreduce.job.reduces=2 \
  -input myInputDirs \
  -output myOutputDir \
  -mapper /bin/cat \
  -reducer /usr/bin/wc

但是这个命令也可以用以下方法完成:

yarn jar hadoop-streaming-2.7.1.jar \
  -D mapreduce.job.reduces=2 \
  -input myInputDirs \
  -output myOutputDir \
  -mapper /bin/cat \
  -reducer /usr/bin/wc

如果这两个命令是等价的(我认为它们是等价的),那是首选,为什么?

如果您的 MapReduce 框架是 YARN,它们是相等的。如果没有,hadoop jar 将 运行 你的带有 MRv1 的 jar 文件,yarn jar 将 运行 你的 YARN(MRv2) 的 jar 文件。