在Hadoop 2.0时代,增加了Yarn。Yarn只负责资源调度,MapReduce只负责计算。
1、Yarn概述
yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。
2、yarn的基本架构
YARN
主要由
ResourceManager
、
NodeManager
、
ApplicationMaster
和
Container
等组件构成。
3、Yarn的工作机制
1)、Yarn运行机制2)、工作机制详解
- Mr 程序提交到客户端所在的节点。
- Yarnrunner 向 Resourcemanager 申请一个 Application。
- rm将该应用程序的资源路径返回给 yarnrunner。
- 该程序将运行所需资源提交到 HDFS 上。
- 程序资源提交完毕后,申请运行 mrAppMaster。
- RM 将用户的请求初始化成一个 task。
- 其中一个 NodeManager 领取到 task 任务。
- 该 NodeManager 创建容器 Container, 并产生 MRAppmaster。
- Container 从 HDFS 上拷贝资源到本地。
- MRAppmaster 向 RM 申请运行 maptask 资源。
- RM 将运行 maptask 任务分配给另外两个 NodeManager, 另两个 NodeManager 分别领取任务并创建容器。
- MR 向两个接收到任务的 NodeManager 发送程序启动脚本, 这两个 NodeManager分别启动 maptask, maptask 对数据分区排序
- MrAppMaster 等待所有 maptask 运行完毕后,向 RM 申请容器, 运行 reduce task。
- reduce task 向 maptask 获取相应分区的数据。
- 程序运行完毕后, MR 会向 RM 申请注销自己。