Flink --- State

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguosb/article/details/86553636

State是什么

 流计算过程中的中间状态,具体而言,Source的消费位点等元数据,Operator的中间计算结果。

为什么流计算需要State,而批处理不需要?

 大多情况下,流计算可以看做是增量计算,即当前数据的处理是基于之前的计算结果进行的,因此需要保存中间的计算结果;批处理是一次性计算,要么成功要么失败,没有中间状态,因此不需要。

State持久化存储

 Apache Flink采用同步+异步相结合的方式对State进行存储,如下图所示。State的存储可以分为两阶段,首先同步存储到本地RocksDB,然后异步同步到HDFS。一方面避免了单纯采用内存存储的大小限制及不可靠等限制,另一方面减少了单纯采用分布式存储的IO开销。
在这里插入图片描述

参考:

  1. Apache Flink 漫谈系列(04) - State:https://yq.aliyun.com/articles/667562?spm=a2c4e.11153940.blogcont666056.15.57be17d00M7PZ4

猜你喜欢

转载自blog.csdn.net/yangguosb/article/details/86553636