如何解析分布式资源调度框架YARN
YARN 概述
YARN 是 Apache Hadoop 2.x 引入的一种分布式资源调度框架,全称为 Yet Another Resource Negotiator,意为另一种资源协调器。它的设计目标是为了满足大规模集群上的数据处理需求,并提供了更高的可伸缩性、可靠性和灵活性。
YARN 架构
YARN 的架构由 ResourceManager 和 NodeManager 组成。ResourceManager 是集群的全局资源管理器,负责整体的资源分配和调度;NodeManager 负责在每个节点上的资源管理和任务协调。下面是 YARN 的主要组件:
- ResourceManager(RM):全局资源管理器,负责协调整个集群的资源分配和调度。
- NodeManager(NM):每个节点上的资源和任务管理器,负责与 ResourceManager 通信、执行任务、监控资源使用情况等。
- ApplicationMaster(AM):每个应用程序实例都有一个 ApplicationMaster,负责向 ResourceManager 申请资源、协调和监控任务执行。
- Container:资源的抽象表示,每个任务都运行在一个 Container 里,它包含了任务运行所需的资源。
YARN 工作流程
YARN 的工作流程可分为以下几个步骤:
- 客户端向 ResourceManager 提交应用程序,包括应用程序的描述和资源需求。
- ResourceManager 接收到应用程序请求后,为该应用程序启动一个 ApplicationMaster,它负责管理应用程序的运行。
- ApplicationMaster 向 ResourceManager 申请资源,包括内存、CPU 等,ResourceManager 根据集群资源情况进行分配。
- ResourceManager 将资源分配结果发送给 NodeManager,每个 NodeManager 都会监控自身的资源使用情况。
- NodeManager 获取到资源后,在 Container 中启动任务。
- 任务在 Container 中运行并通过 ApplicationMaster 向 NodeManager 汇报状态和进度。
- 当任务完成后,ApplicationMaster 释放资源并向 ResourceManager 注销自己。
通过以上流程,YARN 实现了资源的弹性分配和任务的动态调度,提高了集群的利用率和资源的利用效率。
猜您想看
-
Python只能指定文件类型
Python是...
2023年07月20日 -
如何安全地清理电脑的垃圾文件?
如何安全地清理...
2023年04月20日 -
如何在Edge浏览器中打开新的无痕浏览器
Edge浏览器...
2023年05月13日 -
Git版本思路是什么
Git 版本控...
2023年05月26日 -
LeetCode如何解决在排序数组中查找元素的第一个和最后一个位置问题
1. 问题描述...
2023年05月26日 -
如何在Windows系统中移动或者重命名某个文件夹
在Window...
2023年05月12日