如上图所示一直处于running状态,查看日志发现一直重复弹出同一个info:
2024-10-18 16:57:32,739 [INFO] [AMRM Callback Handler Thread] |rm.YarnTaskSchedulerService|:
Allocated: <memory:0, vCores:0>
释义 : 当前应用程序没有分配到任何内存(memory:0
)和虚拟核心(vCores:0
)。这意味着 YARN 还没有给该作业分配任何资源来启动任务。
Free: <memory:1024, vCores:1>
释义: 当前集群中可用的资源包括 1024MB 的内存和 1 个 vCore(虚拟核心)。虽然有一些空闲资源,但可能不够或者未被分配给当前作业。
pendingRequests: 6
释义: 当前作业还有 6 个任务在等待资源分配。YARN 还没有为这些任务找到可以运行的容器,作业因此被阻塞。
delayedContainers: 0
释义: 没有任何延迟分配的容器。通常,当 YARN 没有立即分配到符合要求的资源时,容器会被延迟,直到合适的资源可用。
heartbeats: 3551
释义: ApplicationMaster (AM) 与 ResourceManager (RM) 之间已经进行了 3551 次心跳通信。这是 YARN 用来监控资源和应用状态的机制。每个心跳之间,RM 会更新 AM 关于资源的状态。
lastPreemptionHeartbeat: 3550
释义: 这是第 3550 次心跳发送时,ResourceManager 发送的最后一次"抢占心跳"(Preemption Heartbeat)。抢占是 YARN 在资源紧张时的机制,用于重新分配低优先级任务的资源给更高优先级的任务。
highestWaitingRequestWaitStartTime: 1729241801061
义: 当前队列中等待时间最长的资源请求的开始时间。这个数值是时间戳,通常是从1970年1月1日 UTC 时间以来的毫秒数,代表该任务的等待时间较长
highestWaitingRequestPriority: 32
释义: 这是当前等待资源的最高优先级请求的优先级值。通常,优先级值越小,优先级越高。32 代表该请求的优先级较低,因此它可能在调度过程中优先级靠后。
重点是:Allocated: <memory:0, vCores:0>和Free: <memory:1024, vCores:1>
先看集群总内存和cores情况,总共132G,75cores:
整个集群明显还有空闲资源,再看对于aviation队列的设置:
configured capacity=5%,表示队列的初始容量百分比,即avation队列在最开始可以使用132G*5%=6.75G,75*5%=3.75cores。
configured max capacity=10%定义了队列使用集群资源的上限,即使其他队列资源空闲,aviation
队列也不能超过这个上限,即132*10%=13.2G,75*10%=7.5cors
尝试调大configured max capacity至30%,
成功解决: