赞
踩
Hadoop YARN提供了可插拔的资源调度器框架,允许用户根据自己的需求选择合适的资源调度策略。目前,YARN主要支持三种资源调度器:FIFO Scheduler、Capacity Scheduler和Fair Scheduler。下面对这三种调度器进行深入研究:
原理: 通过定义多个队列,每个队列都有一定的资源容量限制。作业提交到相应的队列中,调度器根据队列的容量和优先级进行资源分配。
特点: 支持多用户、多队列,适用于大型共享集群。能够保证每个队列至少获得其最小资源量,同时允许队列间资源的弹性借用。提供了良好的隔离性和灵活性,管理员可以精细控制资源分配策略。
配置: 通过修改capacity-scheduler.xml
配置文件来定义队列、容量、权限等。
原理: 目标是为所有作业提供公平的资源分配,即长期来看,无论作业何时提交,每个作业最终都将获得大致相等的资源份额。通过维护每个作业的“公平份额”,并尽可能快地向未达到其份额的作业分配资源。
特点: 适合多用户共享的集群环境,能较好地平衡长短期作业的资源分配,提供动态的资源调整,支持队列和权重设置,以及保证最小资源量的功能。
配置: 通过修改fair-scheduler.xml
配置文件来设置队列的名称、权重、最大/最小资源量等。
抢占(Preemption): 为了实现更好的公平性和响应性,Fair Scheduler和Capacity Scheduler都支持资源抢占。当某些作业等待时间过长,调度器可以主动从占用过多资源的作业中回收部分资源,重新分配给等待的作业。
资源分配策略: 不同的调度器有不同的资源分配策略,比如Capacity Scheduler支持基于标签的资源分配,可以根据节点标签来满足特定应用的需求;Fair Scheduler支持灵活的队列定义,可以基于用户、组或特定规则来创建队列。
可插拔性: 用户可以根据实际需求选择或开发适合自己的调度器插件。YARN的设计使得切换调度器变得相对容易,只需更改配置文件中的相应设置即可。
监控与调优: 利用YARN提供的Web UI(默认端口8088)可以监控各个调度器的工作状态,包括队列资源使用情况、作业运行状态等,这对于性能调优和问题排查至关重要。
了解并熟练掌握这些资源调度器的工作原理和配置,可以帮助管理员更好地管理和优化Hadoop集群的资源分配,确保高效、公平地利用集群资源。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。