streaming - 使用 Flink 从 Kafka 聚合数据
问题描述
我正在尝试编写一个 Flink 应用程序,该应用程序将从 Kafka 读取数据并通过自定义 Hbase 接收器增加 Hbase 中的计数。我正在研究容错,我看到 Flink 将从最新检查点的偏移量重新启动作业。这是否意味着我的 Hbase 接收器会产生重复项?我必须实现自己的重复数据删除逻辑吗?
解决方案
HBase sink 会产生重复吗?
这取决于您何时将数据插入 HBase。
如何实现 Exactly-Once 语义?
根据您的描述,您需要的是端到端的exactly-once语义,这意味着可以多次处理数据,但插入只能执行一次。看一下 CheckpointListener 接口,在 checkpoint 完成时会执行 notifyCheckpointComplete 方法,这是你将数据提交到 HBase 的好时机。
有关更多信息,请查看此文档。https://flink.apache.org/features/2018/03/01/end-to-end-exactly-once-apache-flink.html
推荐阅读
- javascript - 如何在 vscode 中扩展现有的 javascript 类型而不进行类型检查错误
- sql - 在单个 SQL 查询中删除多个表?
- python-3.x - 分组二维列表记录Python
- ios - 我想在我的链接中添加我的用户 ID,但链接应该是相同的
- php - MySQL + PHP中where子句中的if条件
- javascript - 使用 Q 用异步调用填充数组
- python - 如何为 Tensorflow 和 Keras 存储图像?
- php - 如何将上传的文件保存到 SQL 数据库中?
- javascript - vanilla JavaScript 函数完成后,做点什么
- nginx - 使用 Keycloak-proxy 在 zabbix 中进行身份验证