flink实战-- 生产环境flink程序注意事项

简介

         正常情况下Flink 社区已尝试为每个配置提供合理的默认值,但是特殊应用场景需要我们设置具体配置项确保我们线上程序可以高性能的运行,重启等。本篇文章将详细介绍一下线上环境flink程序注意事项,避免入坑。

1. application未来能扩展到的最大parallelism

默认的值由application第一次启动时决定:

  1. 如果所有operator的最大parallelism小于等于128,则默认值等于128
  2. 否则默认值 = MIN(nextPowerOfTwo(parallelism + (parallelism / 2)), 2^15),其中nextPowerOfTwo取值规则是,比如nextPowerOfTwo(1000), 最接近的2的指数是2 ^10 = 1024,所以nextPowerOfTwo(1000) = 1024

因此如果我们不设置预期程序的最大并行度,当我们阔层并行度超过默认的最大并行度时,从保存点重启将会失败,因此建议线上程序设置预期的最大并行度

控制application能扩展的最大parallelism的原因是,为了application的性能

指定的粒度为application、operator,通过setMaxParallelism(maxParallelism: Int)进行指定,指定范围为0 < parallelism <= max parallelism <= 2^15

一旦指定,application启动后就不可修改,除非不用之前的State

你可能感兴趣的:(Flink学习必读系列,flink)