Hadoop 教程 - Yarn调度器和调度算法

YARN提供了几个内置的调度器,用于决定如何在集群中分配资源给各个应用程序。理解这些调度器和它们所采用的调度算法对于优化Hadoop集群的性能至关重要。以下是YARN中最常见的三个调度器及其特点和调度算法:

1. Capacity Scheduler(容量调度器)

  • 特点

    • 旨在支持多租户环境,确保每个队列或用户组都能获得公平的资源份额。
    • 支持动态配置队列资源比例和容量保证。
    • 适合大规模生产环境,特别是那些需要严格资源隔离和保障的场景。
  • 调度算法

    • 首先,按照队列的容量分配资源,确保每个队列至少得到其最小资源保证。
    • 然后,在每个队列内部,采用FIFO(先进先出)或基于优先级、公平性等策略进一步分配资源给各个应用。

2. Fair Scheduler(公平调度器)

  • 特点

    • 目标是最大化总体吞吐量的同时,保证所有作业都能获得大致相等的资源份额,即“公平共享”。
    • 支持灵活的队列配置,可以按权重分配资源,也可以为特定作业或用户设定优先级。
    • 适合需要平衡不同用户或部门间资源分配的环境。
  • 调度算法

    • 使用一种称为“最大最小公平”的算法,持续调整每个正在运行的应用的资源,直至达到或接近它们的目标公平份额。
    • 如果有新的应用加入或现有应用结束,会重新计算每个应用的目标份额,并相应调整资源分配。

3. FIFO Scheduler(先进先出调度器)

  • 特点

    • 最简单的调度器,所有的应用程序都被放在一个队列中,按照提交顺序执行。
    • 不提供资源预留或队列管理功能,适用于小型集群或测试环境。
  • 调度算法

    • 简单的FIFO原则,先提交的应用先获得资源,直到完成或资源耗尽,再分配给下一个应用。

调度策略选择

选择哪个调度器主要取决于集群的使用场景和需求:

  • 对于需要细粒度控制和保证资源分配的大型企业环境,Capacity Scheduler可能是最佳选择。
  • 若追求作业间的公平性,尤其是科研或学术环境中,Fair Scheduler更为合适。
  • 而对于实验或学习目的的小规模集群,FIFO Scheduler因其简单性而被广泛使用。

在实际应用中,还可以根据需要对这些调度器进行配置和调整,以满足特定的工作负载需求。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值