
🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~
🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频
目录
1. Flink细粒度资源管理介绍
Apache Flink 在1.14版本之前使用的是粗粒度资源管理方式,每个算子Slot Request 所需要的资源都是未知的,在Flink源码内部使用UNKNOWN的特殊值来表示,这个值可以和任意资源规格的物理Slot进行匹配,站在TaskManager的角度来说,它拥有的Slot个数与Slot资源是根据Flink的配置来决定。
对于多数简单的作业,现有的粗粒度资源管理已经可以基本满足对资源效率的要求,我们将任务被部署到预定义的、通常相同的Slot中,而无需了解每个Slot包含多少资源,使用粗粒度资源管理只是简单的将所有的task任务运行在一个SlotSharingGroup(SSG)中就可以很好地利用资源。如下图作业,由Kafka读取数据后经过一些简单处理,最终将结果写入到Redis中。对于这种作业,我们很容易将上下游并发保持一致,并将作业的整个pipeline放到一个SSG中。这种情况下Slot的资源需求是基本相同的,用户直接调整默认的Slot配置即可达到很高的资源利用效率,同时由于不同的Task热点峰值不一定相同,当一个任务的消耗减少时,额外的资源可以被另一个消耗增加的任务使用,这被称为削峰填谷效应,通过这种效应将不同的task放到同一个大的Slot里,可以进一步降低整体的资源开销。

本文详细介绍了Apache Flink的细粒度资源管理,包括适用场景、原理及动态资源切割机制。针对不同并行度和资源需求的任务,粗粒度资源管理可能造成资源浪费,而细粒度管理通过按需申请和使用资源提高了效率。文章以一个具体的作业案例说明了细粒度管理如何避免资源浪费,并探讨了如何在实际场景中应用这一特性。
订阅专栏 解锁全文
293

被折叠的 条评论
为什么被折叠?



