Hadoop + AI 调整资源配置
场景一 辅助解释yarn web UI
以下是 Yarn Web UI 上一个队列资源描述信息的一堆键值对。由于页面上缺少更详细的解释信息,有时会让人感到困惑。
现在,我们可以让GPT来解释这些信息的意义。
第一轮提示
提示
下面是yarn web ui上一个队列的资源情况的描述,请帮我描述一下他们都分别表示什么含义
Used Capacity: <memory:0, vCores:0> (0.0%)
Configured Capacity: <memory:0, vCores:0>
Configured Max Capacity: unlimited
Effective Capacity: <memory:24576, vCores:24> (100.0%)
Effective Max Capacity: <memory:24576, vCores:24> (100.0%)
Absolute Configured Capacity: 100.0%
Absolute Configured Max Capacity: 100.0%
Used Resources: <memory:0, vCores:0>
Configured Max Application Master Limit: 10.0
Max Application Master Resources: <memory:2560, vCores:1>
Used Application Master Resources: <memory:0, vCores:0>
Max Application Master Resources Per User: <memory:2560, vCores:1>
Num Schedulable Applications: 0
Num Non-Schedulable Applications: 0
Max Applications Per User: 10000
Configured Minimum User Limit Percent: 100%
Configured User Limit Factor: 1.0
Ordering Policy: FifoOrderingPolicy
Intra-queue Preemption: disabled
Default Node Label Expression: <DEFAULT_PARTITION>
Default Application Priority: 0
回答
以下是 Yarn Web UI 上一个队列的资源情况的描述及其含义:
- Queue State (队列状态): RUNNING 表示队列当前正在运行。
- Used Capacity (已用容量): <memory:0, vCores:0> (0.0%) 表示队列当前没有使用任何内存和虚拟核心资源。
- Configured Capacity (配置容量): <memory:0, vCores:0> 表示队列配置的内存和虚拟核心资源为零。
- Configured Max Capacity (配置最大容量): unlimited 表示队列的最大容量没有限制。
- Effective Capacity (有效容量): <memory:24576, vCores:24> (100.0%) 表示队列实际可用的内存和虚拟核心资源分别为 24576 MB 和 24 个。
- Effective Max Capacity (有效最大容量): <memory:24576, vCores:24> (100.0%) 表示队列实际可用的最大内存和虚拟核心资源分别为 24576 MB 和 24 个。
- Absolute Used Capacity (绝对已用容量): 0.0% 表示在整个集群中,队列当前没有使用任何资源。
- Absolute Configured Capacity (绝对配置容量): 100.0% 表示队列在整个集群中占据的配置容量百分比。
- Absolute Configured Max Capacity (绝对配置最大容量): 100.0% 表示队列在整个集群中占据的配置最大容量百分比。
- Used Resources (已用资源): <memory:0, vCores:0> 表示队列当前没有使用任何内存和虚拟核心资源。
- Configured Max Application Master Limit (配置最大 Application Master 限制): 10.0 表示队列中最多可以有 10 个 Application Master。
- Max Application Master Resources (最大 Application Master 资源): <memory:2560, vCores:1> 表示每个 Application Master 最多可以使用 2560 MB 内存和 1 个虚拟核心资源。
- Used Application Master Resources (已用 Application Master 资源): <memory:0, vCores:0> 表示队列当前没有使用任何 Application Master 资源。
- Max Application Master Resources Per User (每用户最大 Application Master 资源): <memory:2560, vCores:1> 表示每个用户的 Application Master 最多可以使用 2560 MB 内存和 1 个虚拟核心资源。
- Num Schedulable Applications (可调度应用数量): 0 表示队列中没有可调度的应用。
- Num Non-Schedulable Applications (不可调度应用数量): 0 表示队列中没有不可调度的应用。
- Num Containers (容器数量): 0 表示队列中没有容器。
- Max Applications (最大应用数量): 10000 表示
反馈
可以看到GPT的解释是非常精准的,只是话没说完,让它继续。
第二轮提示
提示
回答
队列中最多可以有 10000 个应用。
- Max Applications Per User (每用户最大应用数量): 10000 表示每个用户最多可以在队列中拥有 10000 个应用。
- Configured Minimum User Limit Percent (配置的最小用户限制百分比): 100% 表示每个用户至少可以使用队列中 100% 的资源。
- Configured User Limit Factor (配置的用户限制因子): 1.0 表示用户的资源使用限制为队列配置的资源的 1 倍。
- Accessible Node Labels (可访问节点标签): * 表示队列可以访问集群中所有节点。
- Ordering Policy (排序策略): FifoOrderingPolicy 表示队列中的应用按照先进先出 (FIFO) 的顺序进行调度。
- Preemption (抢占): disabled 表示队列不支持资源抢占。
- Intra-queue Preemption (队列内抢占): disabled 表示队列内部的应用之间不支持资源抢占。
- Default Node Label Expression (默认节点标签表达式): <DEFAULT_PARTITION> 表示队列默认使用集群中的默认分区。
- Default Application Priority (默认应用优先级): 0 表示队列中的应用默认具有 0 级优先级。
反馈
场景二 提供配置修改建议
如下图所示,我们当前default里的Ordering Policy(排序策略)是FifoOrderingPolicy(先进先出)。
现在,我们想把它改为公平调度策略,此时你可以向GPT问一下配置修改的建议。
第一轮提示
提示
我现在在yarn上有一个队列,它的Ordering Policy是FifoOrderingPolicy 我想让它编程公平调度策略,该怎么修改配置文件
回答
要将 YARN 队列的排序策略从 FifoOrderingPolicy 更改为公平调度策略(FairOrderingPolicy),需要修改 YARN 的配置文件 capacity-scheduler.xml。以下是具体步骤:
- 找到 YARN 配置文件 capacity-scheduler.xml,它通常位于 $HADOOP_HOME/etc/hadoop 目录下。
- 打开 capacity-scheduler.xml 文件,在文件中找到要修改的队列配置。队列配置的路径应该类似于 yarn.scheduler.capacity.<queue-path>.ordering-policy,其中 <queue-path> 是队列的路径,例如 root.default。
- 修改队列的 ordering-policy 配置项,将其值从 fifo 更改为 fair。例如,如果要修改默认队列,可以将配置更改为:
<property>
<name>yarn.scheduler.capacity.root.default.ordering-policy</name>
<value>fair</value>
</property>4. 保存 capacity-scheduler.xml 文件。
5. 重启 YARN 服务以使更改生效。这通常涉及重启 ResourceManager 和 NodeManager 守护进程。具体命令可能因发行版而异,但通常类似于以下命令:
$HADOOP_HOME/sbin/stop-yarn.sh
$HADOOP_HOME/sbin/start-yarn.sh
现在,所选队列的排序策略应为 FairOrderingPolicy,即公平调度策略。请注意,如果集群使用的是 FairScheduler,则需要修改 fair-scheduler.xml 文件,而不是 capacity-scheduler.xml。在这种情况下,需要将 allocations 配置项从 fifo 更改为 fair。