checkpoint执行流程的一些疑问

checkpoint执行流程的一些疑问

老师  请问一下

双流join   

1  在checkpoint触发执行之后   状态数据被持久化到外部存储中

然后我们消费到了其中一条流中的数据     这个时候是去另外一条流中的状态(外部存储)中找到对应的数据就行关联  然后sink输出吧


2  在checkpoint还没有被触发   状态数据还没有持久化到外部存储中

 这个时候刚好两个流中各来了一条数据且能够关联上

 他们是拿自己内存中的状态数据进行关联  然后sink输出嘛



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

不是这样的。

不管任何时候,双流join都是到对方的状态中(默认是放在内存)去查询数据进行关联。

Checkpoint的工作是负责把状态中的数据持久化到外部存储(HDFS)中。后期如果任务失败了,重启的时候想要恢复状态数据,则需要用到之前持久化到HDFS中的状态数据。

  • 慕楠枫桥 提问者 #1

    那这个时候状态的数据就是存储在HDFS中
    那就是每来一条数据都要去另外一个流的状态(HDFS)中去找了
    那么上面的第二种情况   不就关联不上了嘛
    因为刚好都还没触发checkpoint     
    两个流中的数据都是在checkpoint进来的

    这块一直没搞懂😂

    2025-11-02 19:03:38
  • 慕楠枫桥 提问者 #2

    那这个时候状态的数据就是存储在HDFS中
    那就是每来一条数据都要去另外一个流的状态(HDFS)中去找了
    那么上面的第二种情况   不就关联不上了嘛
    因为刚好都还没触发checkpoint     
    两个流中的数据都是在checkpoint之前进来的

    这块一直没搞懂😂

    2025-11-02 19:05:16
  • 徐老师 回复 提问者 慕楠枫桥 #3
    状态中的数据默认是在内存中的,平时所有的操作都是基于内存中的数据。只有任务在故障以后重启恢复状态的时候才会基于HDFS中的数据恢复,从HDFS中把状态数据恢复到内存中。
    2025-11-02 20:27:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师