Yarn

概述

yarn 是一个资源调度平台,用于给mapReduce 的job分配资源。

yarn 的组成 包含 ResourceManger NodeManager ApplicationMaster 和Container组成。

yarn工作流程

  • Mr 提交一个任务,任务信息包含job.split 切片信息,job.xml 任务元信息 x.jar 任务的执行jar包.将这些信息提交给yarn
  • MR 会将引用程序所需要的资源路径返回给YarnRunner ,将运行所需要的资源提交到hdfs上
  • 提交到yarn的ResourceManger上,被放到yarn的任务队列中,当yarn调度到任务队列中的任务后
  • 为任务在一个NodeManger 机器上 开启一个容器 ,容器内部开启一个控制Mr任务的MrAppMaster
  • MrAppMaster 计算出本次任务又2个切片所以向yarn 申请2个 yarnChild 也就是2个子容器,用来执行MapTask任务
  • MapTask 从Hdfs中获取运行的资源和数据
  • MapTask 任务执行完毕后,任务中有2个分片数据,MrAppMaster 向yarn申请2个yarnchild容器用来执行ReduceTask
  • 程序执行完毕后,MR 会想ResourceManger 提交注销申请

Hdfs mapreduce yarn 总工作流程

https://www.jianguoyun.com/p/DUGMJxsQ35O6Chi9pLkEIAA