Hadoop-2.x以前MapReduce的架构设计
在hadoop-2.x将资源管理和调度独立出来了,叫做Yarn
解释:
Application Manager管理应用程序状态
Resource Scheduler 进行资源的调度
NodeManager jvm进程
NodeManager提供container,在container里面运行Task/AppMaster
当任务提交到yarn上,ResourceManager会找一个有空余的NodeManager启动AppMaster,多个程序就多个AppMaster
任务提交流程
1.spark/flink 代码打包,根据yarn命令提交到yarn集群
2.ResouceManager主节点接收到提交来的application,ApplicationManager管理这个应用程序,ApplicationManager首先找一个有空余资源的NodeManager servert提供一个containor,在containor内部启动一个applicaitonMaster
3.AppMaster向ResourceManager执行注册
4.AppMaster不断维持和ResourceManager的心跳,每一秒心跳一次向RM申请资源,RM中的Resource Scheduler 接收请求,执行资源的调度
5.AppMaster向NodeManager申请启动container
6.NodeManager启动container
7.container会向AppMaster进行注册,task和appMaster会维持task状态汇报
8.如果appMaster收到所有task执行成功的消息后,最终AppMaster发送给RM注销的消息(说明已经执行成功了),
ApplicationManager将正在运行的Application移除掉。
hadoop yarn 架构优势:
- YARN 中ApplicationMaster只是一个规范
- YARN中的Container比slot更合理
- RM HA 解决单点故障