Apache Flink致力于为所有应用程序自动导出合理的默认资源需求。对于希望根据其特定场景微调其资源消耗的用户,Flink提供了细粒度的资源管理。这里我们就来看下细粒度的资源管理如何使用。(注意该功能目前仅对DataStream API有用)
1. 适用场景
使用细粒度的资源管理的可能场景如下:
- tasks具有显著不同的并行性
- 整个管道(pipeline)所需的资源太多,无法放入单个插槽(slot)/任务管理器(taskmanager)
- 不同阶段的tasks所需资源显著不同的批处理作业
2. 粗粒度和细粒度的资源管理对比
TaskManager中的任务执行资源被划分为许多插槽(slot)。slot是Flink运行时进行资源调度和资源需求的基本单位。
在以前的Flink中,资源需求只包含所需的插槽(slot),没有细粒度的资源配置,即粗粒度的资源管理(即所有slot平分taskmanager资源)。TaskManager