首页 > 其他 > 详细

Flink State的两张图

时间:2018-09-14 22:13:28      阅读:195      评论:0      收藏:0      [点我收藏+]

streamTask的invoke方法中,会循环去调用task上的每个operator的initializeState方法,在这个方法中,会真正创建除了savepointStream的其他三个对象,

而savepointStream会lazy到做savepoint的时候才创建对象,这个也可以理解,毕竟savepoint不是必须的。
那么,三个对象创建了之后,就可以发挥作用了吗?不是。KeyedStateBackend和OperatorStateBackend创建之后立刻就会发生作用,因为用户的
代码需要获取和操作state,都会和这两个对象打交道,而checkpointStream要发挥作用就必须等到系统发出做checkpoint的指示之后,也就是开始
做snapshot之后,这个checkpointStream作为管道将KeyedStateBackend和OperatorStateBackend中的state进行持久化。

 

内存模型

技术分享图片

 

 

 

 

 调用关系:

其中task持有processor对象和operator对象,operator对象持有runtime对象,processor和runtime都持有operator对象,大量的这种对象之间的相互引用关系。

技术分享图片

 

Flink State的两张图

原文:https://www.cnblogs.com/029zz010buct/p/9649020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!