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

( 未完待续 )

posted @ 2018-02-08 11:33  秦时明月0515  阅读(249)  评论(0编辑  收藏  举报