我想将flink存储存储在HDFS中,以便在崩溃后可以从HDFS恢复flink状态。我计划每60秒将状态写入HDFS。如何实现?这是我需要遵循的配置吗?https://ci.apache.org/projects/flink/flink-docs-release-1.4/ops/state/state_backends.html#setting-default-state-backend在哪里指定检查点间隔?任何链接或示例代码都很有用
rpppsulh1#
选择存储检查点的位置(例如HDFS)与决定使用哪个状态后端来管理工作状态(可以是堆上的,也可以是由RocksDB库管理的本地文件中的)是分开的。这两个概念在Flink 1.12中被清晰地分开了。在早期版本的Flink中,这两个概念看起来比实际上更紧密相关,因为filesystem和rocksdb状态后端构造器将文件URI作为参数,指定检查点应该存储在哪里。管理所有这些的最佳方法是在代码中不考虑这些,而在flink-conf.yaml中指定所需的配置,例如:
flink-conf.yaml
state.backend: filesystem state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints execution.checkpointing.interval: 10s
axzmvihb2#
有关检查点操作和保存点操作的信息,请参阅https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/checkpointing/关于如何将HDFS配置为文件系统,您应该检查https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/filesystems/overview/
2条答案
按热度按时间rpppsulh1#
选择存储检查点的位置(例如HDFS)与决定使用哪个状态后端来管理工作状态(可以是堆上的,也可以是由RocksDB库管理的本地文件中的)是分开的。
这两个概念在Flink 1.12中被清晰地分开了。在早期版本的Flink中,这两个概念看起来比实际上更紧密相关,因为filesystem和rocksdb状态后端构造器将文件URI作为参数,指定检查点应该存储在哪里。
管理所有这些的最佳方法是在代码中不考虑这些,而在
flink-conf.yaml
中指定所需的配置,例如:axzmvihb2#
有关检查点操作和保存点操作的信息,请参阅https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/checkpointing/
关于如何将HDFS配置为文件系统,您应该检查https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/filesystems/overview/