博学谷学习记录超强总结,用心分享 | yarn的执行流程
Posted 积雷山摩云洞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博学谷学习记录超强总结,用心分享 | 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
以上是关于博学谷学习记录超强总结,用心分享 | yarn的执行流程的主要内容,如果未能解决你的问题,请参考以下文章
博学谷学习记录超强总结,用心分享 | 小程序 canvas生成图片
博学谷学习记录超强总结,用心分享 | hive 查询分组join
[博学谷学习记录] 超强总结,用心分享 | Zookeeper
博学谷学习记录超强总结,用心分享 | 产品经理还得懂点儿运营