请教一个问题,为什么FLINK在CREATE阶段,会打满队列核数?明明作业只用了100多核,然后等作业RUNNING之后,队列的核数一下子掉了。
在Flink的CREATE阶段(作业创建阶段),Flink会根据作业的配置和资源需求来进行资源的申请和分配。这时候,Flink可能会一次性请求并占用队列中的所有核数,即使实际作业只需要使用部分核数。
这种行为的原因是为了在作业开始运行之前,预留足够的资源。在CREATE阶段,Flink会为作业请求并分配所需的资源,以确保作业能够在运行时获取到足够的计算资源。这包括作业需要的CPU核数、内存、网络带宽等资源。
一旦作业进入RUNNING阶段,Flink会根据实际需要来分配和使用资源。可能由于作业的计算任务较轻或者一些任务处于空闲状态,实际使用的核数会比在CREATE阶段分配的核数少。
当实际使用的核数减少时,队列中的核数就会相应地减少,以便其他作业或任务可以使用这些闲置的资源。
这种行为是Flink的资源管理策略的一部分,旨在优化资源利用并确保不同作业之间的公平共享。如果您想要进一步优化资源利用或控制资源分配,可以通过在作业提交前调整作业的配置参数,如taskmanager.numberOfTaskSlots、parallelism等来进行调整。此回答整理自钉群“【②群】Apache Flink China社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。