stp*_*ung 9 apache-spark spark-streaming
我很好奇是否绝对必须让Spark流应用程序正常关闭,否则它会冒着通过预写日志导致重复数据的风险.在下面的场景中,我概述了队列接收器与队列交互的步骤序列,需要对消息进行确认.
我的理解是正确的,应该如何实现自定义接收器,它带来的重复问题,以及需要正常关闭是正常的吗?
底线:这取决于您的输出操作。
使用V1.3 中引入的Direct API 方法消除了 Spark Streaming 和 Kafka 之间的不一致,因此尽管出现故障,Spark Streaming 仍能有效地准确接收每条记录一次,因为 Spark Streaming 在其检查点内跟踪偏移量。
为了实现结果输出的一次性语义,将数据保存到外部数据存储的输出操作必须是幂等的,或者是保存结果和偏移量的原子事务。
有关 Direct API 及其使用方法的更多信息,请查看Databricks 的这篇博客文章。
| 归档时间: |
|
| 查看次数: |
433 次 |
| 最近记录: |