Yarn
分布式资源管理和任务调度框架
背景
在一直所常用的架构为MRv1
但是存在单点故障和限制区群扩充的问题、资源和计算也没有很好的解耦
四大角色 Client ResourceManager NodeManager ApplicationMaster
Client负责代表用户和RM交互
RM
整个集群中只有一个存活,负责资源的调度和管理
处理Client发来的请求 开启和杀死应用
负责监控AM 当AM挂掉之后在NM上启动该AM
监管NM
NM
集群中有很多 负责单个节点的资源管理和使用
处理AM的命令
接收RM的命令
周期性向RM汇报节点资源使用情况
AM
数据切分
向RM申请资源,分配给内部任务
与NM通信启动停止任务
任务监管,失败时申请重启
处理RM的命令
运行流程
用户通过Client向RM提交任务
RM为任务分配一个container,并与NM通信,要求启动AM
NM启动一个container运行AM
AM向RM注册 RM就可以直接看到作业的运行状况
AM申请到资源后 和NM通信 请求启动任务
NM执行AM命令 启动Container
container向AM汇报进度 让AM掌握各个任务
任务完成后 AM向RM申请注销关闭自己
常见的调度策略
FIFO先进先出 不适用于共享集群、一般不用在生产环境中
Capacity 容器调度器 队列中默认fifo 也只是fair
Fair 公平分配
高可用说明
RM同时有好几个 但是只启动一个
AM挂掉 RM负责重启 AM会保存已完成的Task AM需要处理内部任务的问题 如Task Failure
NM挂掉之后 如果Task挂掉 AM负责处理 如果AM挂掉 RM重启一个新的container运行AM
Task Failure 发送心跳给AM AM感知到之后尝试恢复
Yarn基本知识总结
最新推荐文章于 2025-03-27 16:30:45 发布