【博学谷学习记录】超强总结,用心分享 | yarn的执行流程
【博学谷IT技术支持】
yarn的组成部分
hadoop是由Common、HDFS、YARN、MapReduce等核心模块组成,yarn负责解决资源调度问题,这里介绍下yarn的业务执行流程。
-
yarn是Master/Slave结构,主要包含ResourceManage、NodeManager、ApplicationMaster和Conainer等组件。
-
ResourceManager为主节点,负责整个集群资源的管理和分配,由Scheduler(调度器)和ApplicationManager(应用程序管理器)组成。
- Scheduler根据容量和队列等限制条件,为每个运行的程序分配资源
- ApplicationManager 负责管理管理所有的应用程序,包括应用程序提交、与调度器协调资源启动ApplicationMaster、监控ApplicationMaster运行状态,并在失败时重新启动它。
-
NodeManager是从节点,定时想ResourceManager汇报资源使用情况,保持心跳,接受来自ApplicationMasterde 的Container启动/停止等各种请求。
yarn的执行流程
- 客户端向RM提交任务请求
- RM会在NM分配一个Container,启动AppMaster,让它管理整个任务的执行。
- AppMaster向任务调度器进行注册
- AppMaster向应用程序管理器申请资源,RM以Container列表的形式返回资源列表。
- AppMaster根据资源列表分别向对应的主机申请资源
- 各个NM根据Container分别开辟对应的资源,并且AppMaster会将MR任务各个MapTask和ReduceTask放在这些资源中运行
- 各个MapTask和Reduce在运行过程中,有任何的状态都需要向AppMaster汇报。
- AppMaster会将任务执行的最终状态汇报给RM
简述
客户端向ResourceManager提交任务请求,RM分配资源
Scheduler调度器
- FIFO(队列调度器): 将job放入队列中,先入的job会优先得到资源,会因为一个job过大占用多数资源,影响后边job执行
- Capacity Scheduler(容量调度器):将资源化成多个队列,提交任务如果没有指定队列会默认队列,可以给每个队列设置资源占用比例。
- Fair Scheduler(公平调度器):根据job对总资源进行平均分配。
ApplicationMaster
每个应用程序都包含一个ApplicationMaster,主要的作用是
- 与ResourceManager协调获取资源
- 将任务进一步分配给内部任务
- 与NodeManager通信启动或停止任务
- 监控所欲任务运行状态,并在失败时为任务重新申请资源启动任务
Container
container是yarn中抽象的资源,它封装了某个接地那上的多维度资源,如内存,cpu,磁盘,网络等。
- 运行在ApplicationMaster的Container
- 运行在各类任务的Container
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!