2

我们通过FlinkRunner运行的Apache Beam作业之一遇到了检查点大小的奇怪行为。状态后端是基于文件的。该作业每天接收一次流量,持续一个小时,然后处于空闲状态,直到它接收到更多数据。

管道不使用任何窗口策略。它只是从源中读取,组合来自该源的不同值并将其写入接收器。我们只在无界源中记录状态。

随着我们处理更多数据,它的大小会慢慢增加,但是,一旦停止使用数据,检查点的大小不会显着减小。

我们认为它可能是数据库接收器的瓶颈,但是如果我们移除接收器并简单地转储数据,则会出现相同的行为。

该行为似乎类似于阶梯图,例如

  • 检查点 = 120KB(起始大小检查点)
  • checkpoint = 409MB(开始接收数据)
  • checkpoint = 850MB(处理积压数据)
  • checkpoint = 503MB(完成处理数据)
  • checkpoint = 1.2GB(开始处理新数据和积压)
  • checkpoint = 700MB(完成处理数据)
  • 检查点 = 700MB(检查点的新起始大小)
  • ...

有没有人见过这种行为?这是使用 Apache Beam 进行 Flink 检查点的已知问题吗?

4

0 回答 0