Hadoop - Yarn 调度器和调度算法
Yarn 调度器和调度算法
YARN调度器(Scheduler)是负责将集群资源分配给不同应用程序的组件。它根据应用程序的资源需求和优先级,以及集群的资源供给情况,决定如何分配资源。YARN提供了多种调度器实现,每种调度器都有不同的调度算法和特点。
目前,Hadoop作业调度器主要有三种:FIFO
、容量(Capacity Scheduler
)和公平(Fair Scheduler
)。Apache Apache Hadoop3.1.3 默认的资源调度器是Capacity Scheduler。 CDH框架默认调度器是Fair Scheduler。
1. FIFO调度器(First-In-First-Out Scheduler
):
- FIFO 调度器(First In First Out):单队列,根据提交作业的先后顺序,先来先服务,按照应用程序提交的顺序分配资源。
- 当一个应用程序提交后,FIFO调度器会尽快为其分配所需资源,并等待该应用程序执行完成后再分配下一个应用程序的资源。
- 这种调度器适用于简单的任务处理场景,但可能导致长作业等待时间过长,资源利用率较低。
2. 容量调度器(Capacity Scheduler
):
- Capacity Scheduler 是 Yahoo 开发的多用户调度器。
- 容量调度器是YARN提供的一种多队列调度器,它将集群的资源划分为多个队列,每个队列都有自己的资源配额。
- 每个队列可以分配的资源由其配置的容量决定,但在集群资源未满时,队列可以使用其他队列的资源。
- 这种调度器适用于多个应用程序之间的资源共享和隔离场景,可以根据不同应用程序的优先级和需求进行灵活的资源分配。
-
容量调度器资源分配算法:
3. 公平调度器(Fair Scheduler
):
- Fair Schedulere 是 Facebook 开发的多用户调度器。
- 公平调度器是一种基于公平分享资源的调度器,它将集群资源公平地分配给各个应用程序。公平调度器通过动态调整每个应用程序的资源配额,以确保每个应用程序都能获得公平的资源份额。
-
它支持多个应用程序同时运行,并可以根据应用程序的需求自动调整资源分配。公平调度器适用于资源共享场景,可以确保各个应用程序都能获得适当的资源,避免了长作业等待时间过长的问题。
-
Fair策略和DRF(Dominant Resource Fairness)策略都是公平调度器(Fair Scheduler)中常用的调度算法,它们旨在确保资源在集群中被公平地分配给各个应用程序。
Fair策略(Fair Sharing
):
Fair策略是最简单的公平调度算法之一,它的核心思想是将集群资源均匀地
分配给所有的应用程序。Fair策略主要包括以下几个步骤:
-
资源分配:Fair策略根据当前集群中的资源情况,将资源均匀地分配给所有的应用程序。每个应用程序都会被分配到一定比例的资源,以确保每个应用程序都能获得公平的资源份额。
-
动态调整:Fair策略会动态地调整资源分配,以适应集群资源的变化和应用程序的需求变化。当集群资源有剩余时,Fair策略会将剩余资源分配给需要资源的应用程序,以提高资源的利用率。
-
优先级支持:Fair策略可以支持为不同的应用程序设置优先级,以确保高优先级的应用程序可以优先获得资源。
- Fair策略的优点是简单直观,能够实现资源的公平分配。
- 但是,它可能无法满足一些特定应用程序的需求,如长时间运行的作业可能会等待时间过长。
DRF策略(Dominant Resource Fairness):
DRF策略是一种更为复杂和高效的公平调度算法,它考虑了各个应用程序对集群中不同资源的需求,并尽量满足每个应用程序对其“主导资源”的需求。DRF策略的核心思想是确保每个应用程序在其主导资源
上获得公平的份额。
DRF策略主要包括以下几个步骤:
-
主导资源计算:DRF策略会根据每个应用程序的资源需求,计算出其在集群中的主导资源。主导资源通常是应用程序在资源利用上占比最大的资源,如内存、CPU等。
-
资源分配:DRF策略会优先满足每个应用程序对其主导资源的需求,确保每个应用程序都能获得公平的主导资源份额。如果集群资源有剩余,则会根据次要资源(非主导资源)的需求来分配剩余资源。
-
资源调整:DRF策略会动态调整资源分配,以适应集群资源的变化和应用程序的需求变化。它会根据每个应用程序的主导资源和次要资源的需求,优先满足主导资源的需求,然后再分配剩余资源。
- DRF策略的优点是能够更加精确地满足每个应用程序对资源的需求,提高了资源的利用率和集群的性能。
- 但是,DRF策略的实现比较复杂,计算成本较高。
上一篇: 设计模式 (019) 行为状态模式
下一篇: C++指针
推荐阅读
-
Hadoop - Yarn 调度器和调度算法
-
❤️❤️❤️Mapreduce 分布式计算组件和 YARN 分布式资源调度
-
FJSP:用于解决灵活作业车间调度问题(FJSP)的蜣螂优化器(DBO)算法,提供 MATLAB 代码
-
[能源管理系统(EMS)] 基于粒子群算法的分布式能源发电机(如光伏和电池)规模优化调度研究(Matlab 代码实现
-
小红书大产品部架构 小红书产品概览--经过性能、稳定性、成本等多个维度的详细评估,小红书最终决定选择基于腾讯云星海自研硬件的SA2云服务器作为主力机型使用。结合其秒级的快速扩缩、超强兼容和平滑迁移能力,小红书在抵御上亿次用户访问、保证系统稳定运行的同时,也实现了成本的大幅降低。 星海SA2云服务器是基于腾讯云星海的首款自研服务器。腾讯云星海作为自研硬件品牌,通过创新的高兼容性架构、简洁可靠的自主设计,结合腾讯自身业务以及百万客户上云需求的特点,致力于为云计算时代提供安全、稳定、性能领先的基础架构产品和服务。如今,星海SA2云服务器也正在为越来越多的企业提供低成本、高效率、更安全的弹性计算服务。 以下是与小红书SRE总监陈敖翔的对话实录。 问:请您介绍一下小红书及其主要商业模式? 小红书是一个面向年轻人的生活方式平台,在这里,他们发现了向上、多元的真实世界。小红书日活超过 3500 万,月活跃用户超过 1 亿,日均笔记曝光量达 80 亿。小红书由社交平台和在线购物两大部分组成。与其他线上平台相比,小红书的内容基于真实的口碑分享,播种不止于线上,还为线下实体店赋能。 问:围绕业务发展,小红书的系统架构经历了怎样的变革和演进? 系统架构变化不大,影响最深的是资源开销。过去三年,资源开销大幅增加,同比增长约 10 倍。在此背景下,我们努力进行优化,包括很早就开始使用 K8S 进行资源调度。到 18 年年中,绝大多数服务已经完全实现了容器化。 问:目前小红书系统架构中的计算基础设施建设和布局是怎样的? 我们目前的建设方式可以简单描述为星型结构。腾讯云在上海的一个区是我们的计算中心,承载着我们的核心数据和在线业务。在外围,我们还有两个数据中心进行计算分流,同时承担灾备和线上业务双活的角色。 与其他新兴电子商务互联网公司类似,小红书的大部分计算能力主要用于线下数据分析、模型训练和在线推荐等平台。随着业务的发展,对算力的需求也在加速增长。
-
资源管理和调度系统 - YARN 的资源调度器
-
hadoop 的资源配置和队列设置以及三个 YARN 资源调度器的说明
-
工作中常用的 Yarn 解释 [V] 资源调度和隔离
-
容量调度器的 YARN 资源调度策略
-
Golang 调度器 (3)--oroutine 的创建、执行和退出