...................上一章主要是为了早点结束,然后开始下面一个非常重要的章节,这个章节不理解清楚,就对Flink的一些核心思想无法理解跟掌握。
flink 状态管理和容错
1,有状态计算
在Flink里面,有状态计算可以说是最重要的特性之一,刚好今天还有个朋友问我状态是保存在什么地方,是一致存在还是怎么样,下面要讲的就很清楚了。
如下图:
咳咳,回答上面的问题,默认情况下 Flink的state是存储在内存里面的,通过定时checkpoint是存储在分布式文件系统里面 (一般都是HDFS)。
2,无状态计算
与上者不同,无状态计算不会去存储计算过程中产生的结果,也不会将结果用于下一步计算过程中,计算完成输出结果,接入下一条数据继续处理。。。
3,Fkink状态类型及应用
Flink会根据是否按Key进行分区,分为 Keyed State 和 Non-keyed State 两种类型。
1)Keyed State
说白了就是DataStream.keyBy(0) 之后 数据按照key分区。
2)Operator State
Operator State只和并行的算子实例绑定,和数据元素中的Key无关,每个算子实例中都持有所有数据元素中的