内容提要
该文调研了2022至2026年Apache YARN调度器相关JIRA问题,共80余个。核心主题为性能优化,重点包括并发调度器建设、抢占优化、Capacity Scheduler增强及CS UI开发。3.5.0版本是里程碑,修复了分配加速、过量分配等问题。并发调度器项目推进3.5年未完成,Fair Scheduler公平性退化,CS UI是最大新投入。
延伸解读
3.5.0:性能与正确性的关键里程碑
文章指出,3.5.0版本集中落地了多项重要修复,包括容器分配加速(YARN-11752)、预检查分离(YARN-11798)、过量分配修复(YARN-11702)以及应用卡在ACCEPTED状态的问题(YARN-11834)。这些修复直接关系到生产环境的稳定性和调度效率,对于正在使用或计划升级到3.5.0的集群,值得重点关注。
并发调度器:长期未竟的架构改造
并发调度器项目(YARN-11411)已推进超过3.5年仍未完成,其目标是解决大集群下全局写锁带来的调度延迟瓶颈。文章显示,该项目涉及并发Leaf Queue、Users Manager等基础组件,复杂度极高。对于依赖YARN处理大规模工作负载的用户,这一改造的进展将直接影响未来调度性能的上限,需持续关注。
Fair Scheduler公平性隐患浮现
文章指出,Fair Scheduler在2025-2026年出现多个公平性相关Issue,如YARN-11907(compareDemand导致队列饥饿)和YARN-11966(PartitionQueueMetrics冲突,Critical级)。这些问题的存在表明FS的公平性保障可能正在退化,对于使用Fair Scheduler的集群,建议密切关注相关补丁的发布,并评估对现有作业调度的影响。
CS UI:从功能到可观测性的转变
Capacity Scheduler UI是2025-2026年社区最大的新功能投入,Phase 1已在3.5.0落地,Phase 2正在推进,涉及Apps/Nodes/Config/Logs视图的迁移。这表明YARN正从单纯的功能开发转向提升运维可观测性。对于集群管理员,新UI有望提供更直观的调度状态查看方式,但需注意Phase 2尚未完成,功能可能仍在演进中。
Q&A
Apache YARN 调度器在 2022 至 2026 年间的主要优化方向是什么?
主要优化方向是性能优化,包括并发调度器建设、抢占优化、Capacity Scheduler增强以及CS UI开发。其中性能优化是最核心的方向,从2022年的基础优化逐步深入到2024-2025年的核心调度路径加速。
YARN 3.5.0 版本在调度器方面有哪些重要修复或改进?
YARN 3.5.0 是调度器优化的里程碑版本,包含多项重要改进:YARN-11752(Global Scheduler容器分配时间改进)、YARN-11798(预检查分离)、YARN-11702(过量分配容器修复)、YARN-11834(App卡在ACCEPTED状态修复)以及YARN-11885(CS UI Phase 1)。
并发调度器项目(YARN-11411)的进展如何?为什么它如此重要?
并发调度器项目(YARN-11411)是YARN调度器领域最重大的架构变更,旨在解决大集群调度延迟问题。当前YARN调度器使用全局写锁,在数千节点、数万容器场景下成为瓶颈。该项目已推进3.5年仍未完成,表明复杂度极高,是最大的技术债。
Fair Scheduler 在 2025-2026 年面临哪些公平性问题?
Fair Scheduler 的公平性在退化,2025-2026年出现多个问题:YARN-11907(FairSharePolicy.compareDemand()导致队列饥饿)、YARN-11966(PartitionQueueMetrics冲突,Critical级)、YARN-11968(FairOrderingPolicy重复扫描无pending请求的app)。这些表明FS的基础公平性保障正在出现问题。
Capacity Scheduler UI(CS UI)的建设情况如何?
CS UI是2025-2026年YARN社区的重大工程投入。Phase 1(YARN-11885)已在3.5.0落地,包含7个子任务;Phase 2(YARN-11944)正在推进中,将Apps/Nodes/Config/Logs视图全面迁移到新UI,也有7个子任务。
在调度正确性方面,哪些关键Bug在3.5.0中修复?
在调度正确性方面,YARN-11702(过量分配容器,Critical)和YARN-11834(App因竞态条件卡在ACCEPTED状态)在3.5.0中修复,对生产环境影响重大。此外,YARN-11843(自动纠正启用时潜在deadlock)是唯一Open的调度正确性Bug。
YARN 调度器优化中,抢占(Preemption)方面有哪些主要问题和修复?
抢占是YARN调度中最复杂也最易出问题的领域。2022年修复了tiny queue频繁抢占问题(YARN-11073,3.4.0),但Fair Scheduler的多个抢占相关Bug从2022-2023年提交后一直Open,最严重的是YARN-11907(compareDemand导致队列饥饿),已有补丁但未合入。