YARN容量调度器多队列
Apache YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的资源管理框架,负责集群资源的分配和调度。容量调度器(Capacity Scheduler)是YARN的一种常用调度策略,允许多个组织或用户共享集群资源,同时保证每个队列有最低资源保障。多队列功能是容量调度器的核心特性,它允许管理员配置多个独立的资源队列,每个队列可以有自己的容量、优先级和子队列。下面我将逐步解释多队列的概念、配置方法、示例以及其优势。
- 调度器默认就1个default队列,不能满足生产的要求。
- 1个队列在任务极限的情况下,容易资源耗尽。
- 特殊时期通过对任务的区分可以保证重要的任务队列资源充足
- 按照框架区分队列,如hive/spark/flink 每个框架的任务放入指定的队列(企业用的不是特别多)
- 按照业务模块区分队列,主流。
1. 容量调度器和多队列的基本概念
容量调度器设计用于支持多租户环境,确保资源分配的公平性和隔离性。在容量调度器中:
- 队列(Queue):是资源分配的基本单位。每个队列代表一个资源池,拥有保证的最小资源容量(例如,队列A可能占集群总资源的30%)。
- 多队列(Multiple Queues):管理员可以创建多个队列,形成树状结构。例如,一个根队列下可以有子队列(如
root.queueA和root.queueB),每个子队列还可以进一步划分。这允许资源按组织、项目或用户组进行划分。 - 资源分配原则:队列的资源容量通常以百分比表示,例如,如果集群总资源为100%,队