假设一个简单的map和reduce操作。A是Map Operator,B是keyby Operator。
A有两个task:taskA1和taskA2,B只有一个taskB
如果taskA2执行的特别慢,taskA1执行完毕checkpoint
cp1后,告诉了taskB,然后已经开始(或者说可以开始)处理下一个checkpoint cp2的数据了。
这时候taskA2还在缓慢的处理cp1的数据。这时候:
taskA1会继续处理cp2的数据吗?
如果是继续处理,taskB会处理taskA传递给taskB的cp2的数据吗?
还是taskA1和taskB都停止处理*,*等taskA2?
同样的问题,如果taskA本身就是一个reduce操作(keyby),taskB是一个map操作。那么同样的问题,答案是一样的吗?
谢谢~*来自志愿者整理的flink邮件归档
A1会继续处理。如果是 exactly-once 模式,taskB 不会处理 taskA传递给taskB的cp2的数据。所以,如果 A2 非常非常慢,最终 taskB 会反压到 A1,导致 A1也无法继续处理数据。*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。