State 状态(中间结果)
-
State分类:keyed state (keyBy)或 operator state (offset)
-
原理:默认保存在 JobManager内存中,指定存储到文件系统中
-
文件系统分类: fsStateBackend:文件系统,rocksdb
-
状态后端 StateBackend : HDFS 为主,Rocksdb(大状态)
Checkpoint 检查点
-
作用:容错机制
-
原理:全局的状态 state (keyed state 或 Operator state)的快照,在Flink中==增量==的快照,效率比较高。
-
对比 Spark : 重量的快照,每次全量快照,Flink 每次增量的快照
总结:
checkpoint就是把state数据进行一个持久化的存储而已
因为本身Flink中的state它是存到内存里的,它总是要定时把它刷写到HDFS上,所以说checkpoint就做这个事的,定时把内存当中的state刷写到HDFS上,对于流计算,不可能把state直接存到HDFS上,它需要通过checkpoint把它保存刷写至HDFS上.
===>state只是个中间结果状态,只是基于key上或某个算子上,需要定期通过checkpoint把它保存刷写至HDFS上.==>即将全局(所有的state)保存至HDFS