hive on tez 指定队列后任务一直处于running状态

如上图所示一直处于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%,

成功解决:

上一篇:Newstar_week1-2_wp


下一篇:FSCapture 9.3 | 全能截图与录屏解决方案。