0

假设我们有 2 个作业管理器(用于 HA 的 ZooKeeper)和 3 个任务管理器。我已经为检查点配置了 FsStateBackend。我假设 FsStateBackend 在每个维护内存状态的任务管理器中运行。在检查点时,状态会保存在我们配置的路径中(文件:/数据)。基本上我已经配置了指向本地文件系统的路径。因此,每个任务管理器都有自己的本地磁盘存储,其中保存了检查点数据。据我了解,一个小的元数据会在检查点上发送到 Job Manager。

  1. 如果其中一个任务管理器崩溃了怎么办?可以肯定的是,任务是在任何可用的任务管理器中启动的。自从任务管理器(崩溃的任务管理器)检查点数据因关闭而无法使用后,作业状态如何恢复?检查点进程是否将状态信息发送到 Job Manager?
  2. 任务管理器在检查点期间向作业管理器发送的元数据是什么?
  3. 我们使用的文件系统是否应该是分布式状态?例如 NFS、S3。如果我们使用系统本地存储进行检查点会发生什么。

谢谢

4

1 回答 1

1

您应该始终使用分布式文件系统进行检查点。HDFS、S3、GFS、NFS、Ceph 等。此外,所使用的存储路径必须可以从所有参与的进程/节点(即所有任务管理器和作业管理器)访问。

否则,正如您所指出的,如果本地磁盘发生故障,检查点数据将会丢失。

Job Manager 拥有关于检查点的完整知识,如果您配置了 HA,此信息将存储在配置的 HA 存储提供程序中,以便启用 Job Manager 故障转移。

于 2020-10-30T20:26:53.460 回答