什么是 end-to-end exactly-once ?_exactly-once

福利部分: 《大数据成神之路》大纲

大数据成神之路

《几百TJava和大数据资源下载》

资源下载

[A] 一般我们把上游数据源 (Source) 看做一个 end,把下游数据接收 (Sink) 看做另一个 end:

Source  -->  Spark Streaming  -->  Sink
 [end]                             [end]

目前的 Spark Streaming 处理过程自身是 exactly-once 的,而且对上游这个 end 的数据管理做得也不错(比如在 direct 模式里自己保存 Kafka 的偏移),但对下游除 HDFS 外的如 HBase, MySQL, Redis 等诸多 end 还不太友好,需要 user code 来实现幂等逻辑、才能保证 end-to-end 的 exactly-once。

而在 Spark 2.0 引入的 Structured Streaming 里,将把常见的下游 end 也管理起来(比如通过 batch id 来原生支持幂等),那么不需要 user code 做什么就可以保证 end-to-end 的 exactly-once 了,请见下面一张来自 databricks 的 slide[1]:

 

什么是 end-to-end exactly-once ?_大数据_02

 

福利部分:
《大数据成神之路》大纲
 

大数据成神之路​shimo.im什么是 end-to-end exactly-once ?_大数据_03

《几百TJava和大数据资源下载》
 

资源下载​shimo.im