【发布时间】:2020-06-07 20:42:37
【问题描述】:
我是 Flink 的新手,我正在尝试编写一个具有完全一次性语义的简单流式作业,该作业从 Kafka 侦听并将数据写入 S3。当我说“精确一次”时,我的意思是我不想在写入 S3 和提交文件接收器运算符之间的中间失败时出现重复。我正在使用 v2.5.0 版本的 Kafka,根据this page 中描述的连接器,我猜我的用例最终将具有精确的一次行为。
问题:
1) 我的假设是否正确,即即使在步骤的任何部分发生任何故障,我的用例最终也会有准确的一次,因此我可以说我的 S3 文件不会有重复记录?
2) Flink 如何使用 S3 处理这一次?在documentation 它说,它使用分段上传来获得精确的一次语义,但我的问题是,如何在内部处理它以实现精确的一次语义?假设,一旦 S3 多部分成功并且在操作员提交过程之前任务失败,在这种情况下,一旦操作员重新启动,它会再次将数据流式传输到已经写入 S3 的 S3,所以它会重复吗?
【问题讨论】:
标签: amazon-s3 apache-flink flink-streaming