YARN【工作机制】

简介: YARN【工作机制】

Yarn概念

       Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式

操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序

Yarn的四大组件

       YARN 主要由 ResourceManager(整个集群资源的老大)NodeManager(单个节点资源的老大)ApplicationMaster(每个作业的老大)Container(容器,负责运行MapTask、ReduceTask) 等组件构成。

ResourceManager(RM)

  1. 处理客户端请求,客户端请求提交一个任务,由RM来进行处理
  2. 监控NodeManager,监控所有节点的运行情况,有节点资源不足就进行处理
  3. 启动或监控ApplicationMaster,客户端提交了一个MR程序,对应启动一个

    ApplicationMaster,如果纸处理这个任务的节点挂了,就把这个任务交给别的节点去处理

  1. 资源的分配和调度

NodeManager

  1. 管理单个节点上的资源
  2. 处理来自RresourceManager的命令
  3. 处理来自ApplicationMaster的命令

ApplicationMaster

  1. 为应用程序申请资源并分配给内部任务
  2. 任务的监控与容错(MapTask、ReduceTask)

Container

   是YARN中对资源的抽象,封装了节点上的资源(内存、CPU、磁盘、网络等),相当于一台小型计算机。

YARN工作机制


例子:我们提交一个MapReduce程序给集群进行WordCount单词统计。

1.客户端提交MapReduce程序

job.waitForCompletion();  -> 创建一个YarnRunnner ->

2.客户端向RM申请一个Application

3. RM给客户端返回一个集群路径 以及 一个应用id(Application_id)->

4. 客户端提交MapReduce作业需要的资源

  • job.split,作业的切片信息
  • job.xml 作业的配置参数信息
  • wordcount.jar 用户的业务逻辑代码

5. 客户端告诉MR资源提交完毕,申请运行MRAppMaster

6.RM将客户端的请求初始化为一个Task

       由于我们的客户端可能是多个,所以需要将每个客户端的Task都放到一个队列当中,一个一个执行。

7. NodeManager领取Task

       NodeManager领取到Task后创建容器Container(任何Task都是在容器中执行)

Container启动一个MRAppMaster进程

8. 去集群上下载job运行需要的资源到本地

9. MRAppMaster再次向RM申请MapTask容器

10. MRAppMaster创建MapTask需要的容器

       通过多个或一个NodeManager创建多个的容器,开启对应个数的MapTask(即使是多个MapTask也可能在同一个NodeManager的多个容器中)

11. MRAppMaster发送启动命令

       MRAppMaster向新开启的NodeManager发送启动命令,启动对应的MapTask,一个MapTask对应一个YarnChild进程。

       MapTask运行完毕,将数据持久化到磁盘

12. MRAppMaster创建ReduceTask需要的容器

       MRAppMaster一直监控运行的执行情况,当检测到MapTask任务执行完毕之后,立即向RM申请相应数量的容器来执行ReduceTask程序,依旧是开启相应数量的容器,在容器中启动ReduceTask,这些ReduceTask对应的进程任然是YarnChild。

13. 作业完成释放资源

       MRAppMaster检测到ReduceTask执行完毕,向RM申请注销自己,将资源(开启的所有NodeManager)全部释放

相关文章
|
JavaScript Java 数据挖掘
如何成为一名独立开发者
【1月更文挑战第10天】如何成为一名独立开发者
|
10月前
|
SQL 存储 大数据
Flink 基础详解:大数据处理的强大引擎
Apache Flink 是一个分布式流批一体化的开源平台,专为大规模数据处理设计。它支持实时流处理和批处理,具有高吞吐量、低延迟特性。Flink 提供统一的编程抽象,简化大数据应用开发,并在流处理方面表现卓越,广泛应用于实时监控、金融交易分析等场景。其架构包括 JobManager、TaskManager 和 Client,支持并行度、水位线、时间语义等基础属性。Flink 还提供了丰富的算子、状态管理和容错机制,如检查点和 Savepoint,确保作业的可靠性和一致性。此外,Flink 支持 SQL 查询和 CDC 功能,实现实时数据捕获与同步,广泛应用于数据仓库和实时数据分析领域。
6649 32
|
资源调度 分布式计算 监控
【Hadoop Yarn】Yarn 工作机制
【4月更文挑战第7天】【Hadoop Yarn】Yarn 工作机制
|
资源调度 分布式计算 Hadoop
什么是YARN?
【8月更文挑战第13天】
1326 3
|
存储 分布式计算 算法
大数据中一致性检查
【10月更文挑战第20天】
860 2
|
存储 分布式计算 OLAP
Apache Paimon统一大数据湖存储底座
Apache Paimon,始于Flink Table Store,发展为独立的Apache顶级项目,专注流式数据湖存储。它提供统一存储底座,支持流、批、OLAP,优化了CDC入湖、流式链路构建和极速OLAP查询。Paimon社区快速增长,集成Flink、Spark等计算引擎,阿里巴巴在内部广泛应用,旨在打造统一湖存储,打通Serverless Flink、MaxCompute等,欢迎大家扫码参与体验阿里云上的 Flink+Paimon 的流批一体服务。
19416 8
Apache Paimon统一大数据湖存储底座
|
资源调度 Kubernetes Java
Flink--2、Flink部署(Yarn集群搭建下的会话模式部署、单作业模式部署、应用模式部署)
Flink--2、Flink部署(Yarn集群搭建下的会话模式部署、单作业模式部署、应用模式部署)
|
弹性计算 数据库 虚拟化
阿里云产品之云服务器ECS类各云产品简介及适用场景介绍
阿里云的云服务器ECS类产品并不是只有云服务器和轻量应用服务器两种产品,还包括弹性裸金属服务器、GPU云服务器、专有宿主机、FPGA云服务器、VMware服务等产品和服务均属于云服务器ECS类云产品,本文为大家介绍一下哪些云产品属于云服务器ECS类产品,他们各自的适用场景有哪些。
|
资源调度 分布式计算 监控
yarn入门(一篇就够了)
yarn入门(一篇就够了)
844 0
|
存储 边缘计算 人工智能
云计算:现代计算环境的关键力量
云计算是基于互联网的计算模式,提供IaaS、PaaS和SaaS服务,改变计算资源获取方式,赋予企业灵活、可扩展的资源调配。其优势包括可扩展性、成本效益、灵活性和效率提升,但也面临安全性、依赖性等挑战。未来趋势涉及边缘计算、混合云、AI融合以及法规遵从与数据安全的强化。企业应适应云计算发展,制定相应策略。