知识卡片

并行度设置的多层优先级

专业/工作 · 500.b.3

内容

一个作业的并行度可以在四个层面配置,优先级从高到低依次是:单个算子上手动设置的并行度(覆盖一切)、执行环境(env)级别设置的全局并行度(影响这个环境下所有未单独设置的算子)、客户端提交作业时通过命令行参数指定的并行度、以及配置文件中系统级的默认并行度(作为兜底)。这是一种典型的分层覆盖设计:越具体的配置优先级越高,缺省时逐级向上取用更通用的配置,好处是既能给绝大多数算子一个统一的默认并行度而不必逐个设置,又能在个别性能瓶颈算子(比如某个IO密集型的Sink)上单独调大或调小并行度而不影响其他算子。理解这套优先级链,排查”为什么这个算子的并行度不是我以为的那个值”时才能顺着链条准确定位到底是哪一层的配置生效了。

参考来源

《Flink入门与实战》第8章《并行》