繁体   English   中英

Apache Flink中保存的默认检查点在哪里?

[英]Where is the default checkpoint(s) kept in Apache Flink?

我是Apache Flink的新手,并且正在研究Apache Flink的示例。 我发现,如果发生故障,Flink可以从检查点恢复流处理。

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.enableCheckpointing(10000L);

现在,我的问题是Flink在默认情况下将检查点保留在哪里?

任何帮助表示赞赏!

Flink具有StateBackends的抽象。 StateBackend负责本地管理工作程序节点上的状态,还负责将状态检查点(并将其还原)到远程位置。

默认的StateBackendMemoryStateBackend 它维护工人(TaskManagers)JVM堆上的状态,并将其检查点指向主服务器(JobManager)的JVM堆。 因此, MemoryStateBackend不需要任何其他配置或外部系统,对于本地开发非常有用。 但是,它显然不具有可伸缩性,不适合任何严重的工作量。

Flink还提供了FSStateBackend ,它还在工作程序的JVM堆上保存本地状态,并将其检查点到远程文件系统(HDFS,NFS等)。 最后,还有RocksDBStateBackend ,它将状态存储在基于磁盘的嵌入式键值存储(RocksDB)中,并且还指向远程文件系统(HDFS,NFS等)的检查点。

默认状态后端是MemoryStateBackend。 意味着它将飞行中的数据存储在任务管理器的JVM中并将其检查点在master(作业管理器)堆中。 这对本地调试很有用,但是如果作业失败,您将失去检查点。

通常用于生产时使用FsStateBackend,并带有指向外部文件系统(HDFS,S3等)的路径。 它将飞行数据存储在任务管理器的JVM中,并将其检查点指向外部文件系统。

喜欢

env.setStateBackend(new FsStateBackend("file:///apps/flink/checkpoint"));

也可以选择配置一个小的元文件,指向状态存储以实现高可用性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM