Flink 任务管理器是否与深度存储服务对话?
Does Flink task managers ever talk to the deep store service?
我有兴趣更好地了解 Flink 如何执行检查点(或保存点)。以下是我的好奇心:
Flink Job manager 是否从任务管理器收集所有状态,然后将这些数据推送到深度存储服务(如 GCP 或 S3)?或者,每个任务管理器和作业管理器是否相互独立地推送状态。
总体设计是每个任务管理器写入其管理的状态,作业管理器写入元数据。这些机器(或容器)中的每一个都直接写入分布式文件系统,它们都需要使用相同的 URI。
不过,细节有点复杂。检查点(或保存点)由许多文件组成,每个状态块都写入其自己的文件中。除了任何小于 state.backend.fs.memory-threshold
的状态块都由作业管理器收集并内联写入元数据。这有助于避免写入大量小文件,这可能是 S3 等对象存储的问题。
我有兴趣更好地了解 Flink 如何执行检查点(或保存点)。以下是我的好奇心:
Flink Job manager 是否从任务管理器收集所有状态,然后将这些数据推送到深度存储服务(如 GCP 或 S3)?或者,每个任务管理器和作业管理器是否相互独立地推送状态。
总体设计是每个任务管理器写入其管理的状态,作业管理器写入元数据。这些机器(或容器)中的每一个都直接写入分布式文件系统,它们都需要使用相同的 URI。
不过,细节有点复杂。检查点(或保存点)由许多文件组成,每个状态块都写入其自己的文件中。除了任何小于 state.backend.fs.memory-threshold
的状态块都由作业管理器收集并内联写入元数据。这有助于避免写入大量小文件,这可能是 S3 等对象存储的问题。