我看过一个名为env.setStateBackend(new RocksDBStateBackend(getString("flie:///tmp/checkpoints"), true));
的视频。
在此video中,它使用分布式文件系统存储数据。
我想知道如果我为Flink检查点配置本地文件系统会发生什么?
例如:
@Repository
interface InterventionRepository : JpaRepository<Intervention, Long> {
@Query("select new Intervention(i.id, i.date, i.wishedDate, new Address(a.streetName1)) " +
"from Intervention i " +
"inner join i.address a ")
fun getInterventions(): Optional<ArrayList<Intervention>>
}
我假设Flink集群的每个节点都会保留自己的数据。它会运作良好吗?
答案 0 :(得分:1)
我假设Flink集群的每个节点都会保留自己的数据。
这是正确的。
它会运作良好吗?
使用本地文件系统和分布式节点,您可以很好地检查点(即使这不确定,因为JobManager
可能会创建目录,因此可能TaskManager
个实例将失败,目录不存在)但是你无法恢复,因为JobManager
读取并根据需要将其分发给运营商。
严格地说,文件系统是本地文件还是分发到flink
并不重要。重要的是JobManager
作为恢复时间能够查看所有检查点数据。如果您在同一台计算机上运行所有内容,那么本地文件系统就可以正常运行。
我认为原则上您甚至可以让所有节点在本地写入,然后手动使用同步过程将数据移动到JobManager
在尝试还原期间可以看到的位置,但这肯定不是推荐的做法。