Yarn的产生
mapReduc1.0
1单点故障
2扩展效率低
3资源利用率高
降低运维成本
方便数据共享
多计算框架支持
MapReduce
Spark
Storm
Yarn的架构图
Yarn模块介绍
ResourceManger
负责集群资源的统一管理和调度
处理客户端请求
启动/监控ApplicationMaster
监控NodeManager
资源的分配与调度
NodeManager
负责单点资源的管理和使用
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令
ApplicationMaster
负责应用程序的管理
数据的切分
为应用程序申请资源。并进一步分给内部任务
任务的监控与容错
Container
任务环境的抽象
任务运行的资源
任务启动命令
任务运行环境
Yarn资源调度器
多类型资源调度
Drf算法
Cpu和内存两种资源
提供多种资源调度
Fifo
队列 capaity Scheduler
Fair Scheduler
多租户的资源调度器
支持资源按比例分配
支持层级队列的划分
支持资源的枪占
Yarn 资源隔离方案
内存绝定生死
Cpu决定快慢
Yarn运行流程的描述
1由client端向ResourceManager 发送请求,
2 ResourceManager启动一个Contariner(容器)用于运行ApplicationMaster
3 ApplicationMaster启动完成后会向ResourceManager建立心跳机制
4 当处理机制不够时,ApplicationMaster会向ResourceManager发送申请请求
5 当ResourceManager接收到请求后会查询可用的contariner让后发送ApplicationMaster
6 由ApplicationMaster进行初始化,AplicationMaster与对应的nodeManage通信
要求nodeManager启动Contarner aplicationMaster与nodeManger建立心跳机制
从而对nodeManager运行的任务进行监控和管理
7 contariner运行期间,ApplicationMaster对Contariner进行监控,contarner通过rpc协议
向对应的ApplicationMaseter汇报自己的状态和进度
8运行期间client 直接与ApplicationMaster通信获取状态,进度
9 结束后ApplicationMaster会向ResourceManager汇报并且注销自己,并允许所属的Contariner收回