Hadoop2 使用 YARN 运行 MapReduce 的过程源码分析

Hadoop 使用 YARN 运行 MapReduce 的过程如下图所示:

总共分为11步. 这里以 WordCount 为例, 我们在客户端终端提交作业:

# 把本地的 /home/hadoop/test.txt 文件上传到 HDFS 的 /input 下, 之后 HDFS 会对文件分块等
hadoop-2.7.3/bin/hadoop fs -put /home/hadoop/test.txt /input/  
# 我们以 hadoop 自带测试例子 wordcount 为例
hadoop-2.7.3/bin/hadoop jar hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output

第一步: run job ( 运行作业 )

    这一步是在 Client 内部进行, hadoop jar .... 是通过 RunJar 运行的, 参考  hadoop-2.7.3/bin/hadoop  

# 这段代码在 hadoop-2.7.3/bin/hadoop 中
# the core commands
    if [ "$COMMAND" = "fs" ] ; then
      CLASS=org.apache.hadoop.fs.FsShell
    elif [ "$COMMAND" = "version" ] ; then
      CLASS=org.apache.hadoop.util.VersionInfo
    elif [ "$COMMAND" = "jar" ] ; then
      CLASS=org.apache.hadoop.util.RunJar
      if [[ -n "${YARN_OPTS}" ]] || [[ -n "${YARN_CLIENT_OPTS}" ]]; then
        echo "WARNING: Use "yarn jar" to launch YARN applications." 1>&2
      fi

( 未完待续 )

原文地址:https://www.cnblogs.com/zhangchao0515/p/8430821.html