1、通常意义上,函数里所有需要任务去维护并用来计算结果的数据都属于任务的状态。比如 +1的算子,中间结果就是状态。
2、状态有两种,
算子状态:作用域是某个算子任务,所有在同一个并行任务之内的记录都能访问到相同的状态。算子状态不能通过其他任务访问。
健值分区状态:
3、有状态的流式应用的一致性检查点是在所有任务处理完等量的原始输入后对全部任务状态进行的一个拷贝。
数据源能否重置其输入流取决于数据源的具体实现以及所消费外部系统是否提供相关接口。只有所有输入流都是来自于可重置的数据源,应用才支持精确一次的状态的一致性。
根据应用采用的数据汇算子,恢复期间某些结果记录可能会向下游系统(如事件日志系统、文件系统或数据库)发送多次。对Kafka,Flink提供的数据汇函数支持精确一次输出,例如在检查点完成后才会把写出的记录正式提交。
4、P74 讲Chandy-Lamport算法。
所有先于分隔符的记录所引起的状态更改都会被包含在分隔符所对应的检查点之中;而所有晚于分隔符的记录所引起的状态更改都会被纳入之后的检查点之中。
和watermark类似,检查点分隔符总是以广播形式发送,从而可以确保每个任务都能从它们的每个输入都收到一个分隔符。
5、原则上,保存点的生成算法和检查点完全一样,只是保存点需要用户显示触发。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。