Hadoop YARN:调度性能优化实践
副标题[/!--empirenews.page--]
背景 YARN作为Hadoop的资源管理系统,负责Hadoop集群上计算资源的管理和作业调度。 美团的YARN以社区2.7.1版本为基础构建分支。目前在YARN上支撑离线业务、实时业务以及机器学习业务。
YARN面临高可用、扩展性、稳定性的问题很多。其中扩展性上遇到的最严重的,是集群和业务规模增长带来的调度器性能问题。从业务角度来看,假设集群1000台节点,每个节点提供100个CPU的计算能力。每个任务使用1个CPU,平均执行时间1分钟。集群在高峰期始终有超过10万CPU的资源需求。集群的调度器平均每分钟只能调度5万的任务。从分钟级别观察,集群资源使用率是50000/(100*1000)=0.5,那么集群就有50%的计算资源因为调度能力的问题而无法使用。 随着集群规模扩大以及业务量的增长,集群调度能力会随着压力增加而逐渐下降。假设调度能力依然保持不变,每分钟调度5万个任务,按照5000台节点的规模计算,如果不做任何优化改进,那么集群资源使用率为:50000/(100*5000) = 10%,剩余的90%的机器资源无法被利用起来。 这个问题解决后,集群在有空余资源的情况下,作业资源需求可以快速得到满足,集群的计算资源得到充分地利用。 下文会逐步将Hadoop YARN调度系统的核心模块展开说明,揭开上述性能问题的根本原因,提出系统化的解决方案,最终Hadoop YARN达到支撑单集群万级别节点,支持并发运行数万作业的调度能力。 整体架构 YARN架构 YARN负责作业资源调度,在集群中找到满足业务的资源,帮助作业启动任务,管理作业的生命周期。 资源抽象 YARN在cpu,memory这两个资源维度对集群资源做了抽象。
作业向YARN申请资源的请求是:List[ResourceRequest]
YARN对作业响应是:List[Container]
YARN调度架构 名词解释
调度流程
资源申请和分配是异步进行的。ResourceScheduler是抽象类,需要自行实现。社区实现了公平调度器(FairScheduler)和容量调度器(CapacityScheduler)。美团点评根据自身的业务模式的特点,采用的是公平调度器。 公平调度器 作业的组织方式 在公平调度器中,作业(App)是挂载如下图的树形队列的叶子。 队列结构 核心调度流程
对于每层队列进行如下流程:
例如,某次调度的路径是ROOT -> ParentQueueA -> LeafQueueA1 -> App11,这次调度会从node上给App11分配Container。 伪代码
公平调度器架构 (编辑:通化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 上周Steam销量排行榜:VR大作《半衰期:爱莉克斯》荣登TOP2
- 搭载高通骁龙XR1平台、Nibiru技术加持的ClassVR二代即将量产
- 数字视觉服务商及项目集成商齐聚广州,2020亚洲VR&AR博览会
- 彭博社报道:AR初创公司Magic Leap欲以超100亿美元售价寻求
- Python数据分析-看了这篇文章,数据清洗你也就完全掌握了
- 《铁甲飞龙》发布25周年!系列VR新作《Voyage Record》发布
- 打造全球智慧样板 思科智慧城要在广州番禺筑巢引凤!
- Facebook正在测试与Oculus账户之间的关联功能
- 对于5G网络安全威胁的解决方案
- 卡内基梅隆大学研究团队推出全新VR触觉解决方案“Wireality