1.概述
为什么FLINK在CREATE阶段,会打满队列核数,明明作业只用了100多核,然后等作业RUNNING之后,队列的核数一下子掉了?
FLINK在CREATE阶段打满队列核数的原因可能是由于FLINK在启动作业时需要进行一些准备工作和资源分配。在CREATE阶段,FLINK会进行作业图的构建、任务分配、资源申请等操作,这些操作可能需要使用大量的CPU资源来完成。
在Flink的CREATE阶段(作业创建阶段),Flink会根据作业的配置和资源需求来进行资源的申请和分配。这时候,Flink可能会一次性请求并占用队列中的所有核数,即使实际作业只需要使用部分核数。
这种行为的原因是为了在作业开始运行之前,预留足够的资源。在CREATE阶段,Flink会为作业请求并分配所需的资源,以确保作业能够在运行时获取到足够的计算资源。这包括作业需要的CPU核数、内存、网络带宽等资源。
一旦作业进入RUNNING阶段,Flink会根据实际需要来分配和使用资源。可能由于作业的计算任务较轻或者一些任务处于空闲状态,实际使用的核数会比在CREATE阶段分配的核数少。
当实际使用的核数减少时,队列中的核数就会相应地减少,以便其他作业或任务可以使用这些闲置的资源。
这种行为是Flink的资源管理策略的一部分,旨在优化资源利用并确保不同作业之间的公平共享。如果您想要进一步优化资源利用或控制资源分配,可以通过在作业提交前调整作业的配置参数,如taskmanager.numberOfTaskSlots、parallelism等来进行调整。