zoukankan      html  css  js  c++  java
  • Flink State的两张图

    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对象,大量的这种对象之间的相互引用关系。

  • 相关阅读:
    QT解析和组装json
    linux下磁盘存储空间不足
    linux下的QT打包方法
    linux下编译protobuf
    linux下编译opencv
    linux下的qt串口通信
    QT执行shell脚本及linux指令相关
    windows下QT打包
    启动zookeeper却没有进程
    Linux命令
  • 原文地址:https://www.cnblogs.com/029zz010buct/p/9649020.html
Copyright © 2011-2022 走看看