我们在flinkrunner中运行的一个apache beam作业遇到了一个检查点大小异常的行为。状态后端是基于文件的。作业每天接收一次流量,持续一个小时,然后处于空闲状态,直到接收到更多数据。
管道不使用任何窗口策略。它只是从一个源读取数据,将该源的不同值组合起来,然后将其写入一个接收器。我们只记录无限源中的状态。
当我们处理更多的数据时,检查点的大小会慢慢增加,但是一旦数据停止使用,检查点的大小不会显著减小。
我们认为这可能是数据库接收器的一个瓶颈,但是如果我们移除接收器并简单地转储数据,则会出现相同的行为。
这种行为似乎类似于一个阶梯图。
检查点=120kb(起始大小检查点)
检查点=409mb(开始接收数据)
检查点=850mb(处理积压数据)
检查点=503mb(已完成数据处理)
检查点=1.2gb(开始处理新数据和积压工作)
检查点=700mb(已完成数据处理)
检查点=700mb(检查点的新起始大小)
...
以前有人见过这种行为吗?这是使用apachebeam的flink检查点的已知问题。
暂无答案!
目前还没有任何答案,快来回答吧!