1. 前言
在YARN的(Yet Another Resource Negotiator)集群中,资源调度器负责管理和分配集群中的计算资源给不同的应用。yarn支持多种资源调度模式,以适应不同类型的作业和用户需求。以下是yarn集群模式下的三种主要资源调度模式。
2. FIFO Scheduler(先进先出调度器)
FIFO调度器是最简单的调度方式,它按照作业提交的顺序依次执行。所有任务被放入一个队列中,系统会优先处理最早进入队列的任务。这种方式简单直观,但可能导致长时间运行的大任务一直抢占大量资源,使得后续的小任务或交互式任务等待很长时间才能执行。
3. Capacity Scheduler(容量调度器)
容量调度器是Hadoop默认的调度器,它为不同的组织或用户组创建多个队列,并保证每个队列都能获得一定比例的弹性扩展。如果某个队列当前没有使用完分配的资源,则其他队列可以借用这些空闲的资源。一旦原队列需要更多资源的时候,借出去的资源将会被回收。
4. Fair Scheduler(公平调度器)
公平调度器旨在确保所有正在运行的应用程序能够平均的共享集群资源。它将整个集群的资源划分为池,并根据策略动态的调整各个应用程序获得的资源份额。这样既可以让小规模的,短时间的单个应用或用户所能使用的资源量,从而实现更精细的资源管理。
5. 建议
对于需要严格区分部门或团队资源使用的环境,建议使用Capacity Scheduler;
对于希望所有的任务尽可能公平竞争资源的情况,则更适合采用Fair Scheduler。