Yarn资源调度器
一、yarn中的角色:
ResourceManager:集群计算资源的分配,启动ApplicationMaster,监控NodeManager的状态。
NodeManager:启动和管理节点中的容器。
ApplicationMaster:运行mapreduce任务,每个job有一个,分配map在哪里运行,reduce在哪里运行。
二、yarn 中 MapReduce 的 job的运行流程:
工作机制详解
(0)Mr程序提交到客户端所在的节点,Yarnrunner向Resourcemanager申请一个Application。
(2)rm将该应用程序的资源路径返回给yarnrunner
(3)该程序将运行所需资源提交到HDFS上
(4)程序资源提交完毕后,申请运行mrAppMaster
(5)RM将用户的请求初始化成一个task
(6)其中一个NodeManager领取到task任务。
(7)该NodeManager创建容器Container,并产生MRAppmaster
(8)Container从HDFS上拷贝资源到本地
(9)MRAppmaster向RM 申请运行maptask容器
(10)RM将运行maptask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。
(11)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动maptask,maptask对数据分区排序。
(12)MRAppmaster向RM申请2个容器,运行reduce task。
(13)reduce task向maptask获取相应分区的数据。
(14)程序运行完毕后,MR会向RM注销自己。
https://www.cnblogs.com/frankdeng/p/9311474.html
1、将MR程序提交到客户端所在的节点,运行hadoop jar命令后,会产生RunJar进程,客户端clinet会向ResourceManager申请执行一个job。
2、ResourceManager收到请求后,会向clinet返回job的提交路径和jobid。
3、clinet会将job提交到相应的共享文件路径下 /yarn-staging/jobid。
4、clinet向ResourceManager汇报提交结果,并申请运行MRAppMaster。
5、ResourceManager将这个job加入到任务队列中。
6、NodeManager通过与ResourceManager的心跳连接,从任务队列中获取新的任务。
7、ResourceManager使用资源调度器为NodeManager分配资源容器。
8、ResourceManager在容器中启动MRAppMaster进程。
9、由MRAppMaster来分配在哪些NodeManager上运行map,哪些运行reduce任务。
10、运行map、reduce任务的NodeManager从共享文件系统中获取job相关资源,包括jar文件和配置文件等。然后运行map和reduce任务。
11、job任务完成后,MRAppMaster向ResourceManager注销自己,让其回收资源。
三、yarn中的三种资源调度器:
资源调度器https://blog.csdn.net/qq_21383435/article/details/82659947
1、FIFO调度器:
2、容量调度器:
多队列;每个队列内部先进先出,同一时间队列中只有一个任务在执行。队列的并行度为队列的个数。
3、公平调度器:
多队列;每个队列内部按照缺额大小分配资源启动任务,同一时间队列中有多个任务执行。队列的并行度大于等于队列的个数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)