Flink再次复习

Q&A

什么情况下会造成反压?

  • 在实践中,很多情况下的反压是由于数据倾斜造成的,这点我们可以通过 Web UI 各个 SubTask 的 Records Sent 和Record Received 来确认,另外 Checkpoint detail 里不同 SubTask 的 State size也是一个分析数据倾斜的有用指标。
  • 下游算子与低速的系统进行交互。可以进行异步IO
  • 就是申请资源不足。可以调节并行度。
  • 也有可能是TaskManager内存分布不合理,导致频繁的GC,造成反压,更严重的会导致TM失联。可以使用G1垃圾回收器
  • 或者窗口太大,或者滑动步长太小。

Flink反压有什么影响?

反压还会影响到两项指标: checkpoint 时长和 state 大小

  • 出现反压就会造成数据阻塞,barrier流不到下游的算子,会在称checkpoint时长(End to End Duration)增大。checkpoint 时间变长有可能导致 checkpoint 超时失败
  • 由于barrier对齐机制,先到的barrier等待其他barrier到达的这个时间边长,导致存入缓存区的数据变多,导致state变大。而 state 大小同样可能拖慢 checkpoint 甚至导致 OOM???持怀疑态度

怎么定位反压点?

  • 通过 Flink Web UI 自带的反压监控面板
  • 通过 Flink Task

你可能感兴趣的:(flink,flink)