原创 | 9张图详解Yarn的工作机制,惊艳阿里面试官

点击上方 "大数据肌肉猿"关注, 星标一起成长

后台回复【加群】,进入高质量学习交流群

2021年大数据肌肉猿公众号奖励制度

我们知道 YARN 是 Hadoop 资源管理器,无论是 MapReduce 应用还是 Spark 应用,应该都会用到 Yarn。我们学习 Yarn 不仅为了应对工作,面试中也是一个高频考点,无论是阿里、字节还是美团等一线大厂的一面,都喜欢问这个知识点。

今天我们就来聊聊 Yarn 的组成以及工作流程:

先介绍几个角色

ResourceManager

一个集群只有一个 RM,它是 YARN 的总指挥,负责协调集群上的计算资源,它有以下两个组件:

  • ApplicationsManager:这个不是 ApplicationMaster,注意区分。它会接受 Job 的提交请求,调度 Container 用于启动 ApplicationMaster,以及负责 ApplicationMaster 的失败重启。

  • Scheduler:调度器纯粹为应用程序分配资源,它不会监控应用的状态,这里的调度就是基于 Container 这个抽象的资源容器,包含内存、CPU、磁盘、网络等。

NodeManager

一个集群中有多个 NodeManager,它负责启动 Container,监控 Container 的资源使用情况(cpu、内存、磁盘、网络),并将这些信息汇报给 RM。一个 NodeManager 上可以有多个 Container。

Container

Container 是一组硬件资源的抽象,包含 CPU、内存、磁盘、网络等,所有的 Job 都是在 Container 中运行;

ApplicationMaster

与 RM 协商资源,并与 NodeManager 一起监控任务,ApplicationMaster 和 Job 一样,都是运行在 Container 中。

下面我们详细了解下一个任务是怎么提交到 Yarn 中运行的。

第 1 步:Client 向 RM 发起任务请求:「RM,我要执行一个任务」

第 2 步:RM 给 Client 返回 Application ID 等信息:「好的,给你分配一个 Application ID」

第 3 步:Client 根据返回的信息,检查作业的输入输出目录是否正确、计算作业输入分片是否正常,将运行作业需要的资源(作业 Jar 文件、配置文件、输入分片)复制到以 Application ID 命名的 HDFS 目录中。

第 4 步:Client 向 RM 正式提交作业:「我都准备好了,执行任务吧」

第 5 步:RM 将请求信息传递给自己的小弟 Scheduler:「Scheduler 老弟,你来分配个 Container」

第 6 步:Scheduler 分配 Container,用于启动 ApplicationMaster:「好的,这个 Container 就是 0 号选手」

第 7 步:ApplicationsManager 与指定的 NodeManager 通信,要求在 Container 中启动 ApplicationMaster。

第 8 步:ApplicationMaster 初始化任务并向 RM 申请所需要的资源:「RM 大哥,给我资源运行任务」

第 9 步:RM 返回 ApplicationMaster 申请的资源:「给你 1、2  两个 NodeManager」

第 10 步:ApplicationMaster 与对应的 NodeManager 通信,申请 Container 启动任务「NodeManager 大哥,给我启动 Container 运行这个任务」

第 11 步:Container 中的应用程序会先将需要的计算资源从 HDFS 下载到本地,再启动任务:「都给我跑起来」

第 12 步:运行过程中,任务会将状态和进度报告给 ApplicationMaster,Client 会轮询 ApplicationMaster 获取状态。

第 13 步:运行完成后,Container 会注销掉,也就是把资源归还给系统,ApplicationMaster 向 RM 注销自己。

如果你已经坚持看到这里了,可以回到文章开头再看看 Yarn 的几个角色解释,加深理解。

你还想峰哥讲哪方面的知识点,欢迎留言~

原创专辑:

峰哥杂谈

峰哥的成长之路

大数据转型案例

大数据面试知识点

技术漫画与职场经验

·················END·················

你好,我是峰哥,一个骚气的肌肉男。独自穷游过15个国家,60座城市,也是国家级健身教练。

二本车辆工程转型大数据开发,拿过66个大数据offer,现任某知名外企高级数据工程师。

毕业一年,靠自己在上海买房,点此看我2020年总结。为人亲和,欢迎添加我的微信 Fawn0504 进行交流或围观朋友圈。

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值