一个专注于大数据技术架构与应用分享的技术博客

Hadoop YARN公平调度(FairScheduler)介绍

Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop分布式计算框架中的一部分,它是一个资源管理系统,通过对计算集群中的资源进行管理和分配,使得不同的应用程序可以共享计算资源。Hadoop YARN提供了多种调度器,其中最常用的是FairScheduler(公平调度器)。

FairScheduler是一种公平的资源调度器,它使用基于抢占的方式来保证各个作业之间的资源公平性。FairScheduler会将所有的资源划分为不同的资源池,并为不同的作业分配不同的资源池,每个资源池有一定的资源量限制,同时每个资源池又被划分为多个资源容器,而每个容器又用来执行一个或多个任务,从而完成整个作业流程的执行。

FairScheduler的资源调度机制基于三种调度算法:

  1. 队列调度算法:FairScheduler会将不同的作业划分为不同的队列,每个队列都有一定的资源上限。当一个作业提交后,它会被调度到某一个队列中,并获得该队列的一部分资源。

  2. 比例调度算法:比例调度算法可以调整队列之间的资源比例。比例调度算法根据每个队列预留的最小百分比来分配资源。例如,队列A预留了60%的资源,队列B预留了40%的资源,比例调度算法会根据这两个比例来分配资源。

  3. 抢占调度算法:抢占调度算法可以防止单个作业占用太多的资源。如果某个队列中的作业占用了过多的资源,FairScheduler会暂停该作业,并将资源重新分配给其他队列。

FairScheduler适用于在计算资源有限的场景下,合理分配和利用计算资源。它可以为不同的作业分配不同的资源池,从而让它们共享同一批计算资源。另外,在多租户场景下,可以使用FairScheduler为不同的租户分配不同的资源池,并且保证不同租户之间的资源公平性。FairScheduler已经广泛应用于Hadoop生态系统中的各种计算组件,例如Hadoop MapReduce、Hive、Pig等,它不仅具有很好的稳定性和可靠性,而且还可以按需调整资源分配策略,以满足多种应用场景的需求。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Hadoop YARN公平调度(FairScheduler)介绍》
文章链接:https://macsishu.com/hadoop-yarn-fair-scheduling-fairscheduler-is-introduced
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。