1

我看过一个名为Managing State in Apache Flink - Tzu-Li (Gordon) Tai. 在这个视频中,它使用分布式文件系统存储数据。

我想知道如果我为 Flink 检查点配置了本地文件系统会发生什么?

例如:

env.setStateBackend(new RocksDBStateBackend(getString("flie:///tmp/checkpoints"), true));

我假设 Flink 集群的每个节点都会保留自己的数据。它会运作良好吗?

4

1 回答 1

1

我假设 Flink 集群的每个节点都会保留自己的数据。

那是对的。

它会运作良好吗?

使用本地文件系统和分布式节点,您可能可以很好地检查点(即使不确定,因为目录可能是由创建的,JobManager因此TaskManager实例可能会因目录不存在而失败)但是您不会能够恢复,因为JobManager读取并根据需要将其分发给操作员。

严格来说,文件系统是本地的还是分布式的都没有关系flink。重要的是,JobManageras restore time 能够看到所有的检查点数据。如果您在同一台机器上运行所有东西,那么本地文件系统就可以正常工作。

我认为原则上您甚至可以让所有节点在本地写入,然后手动使用同步过程将数据移动到JobManager在尝试恢复期间可以看到的某个位置,但这当然不是推荐的方法。

于 2018-04-13T16:18:38.377 回答