lw-lin / CoolplaySpark

酷玩 Spark: Spark 源代码解析、Spark 类库等
3.46k stars 1.41k forks source link

StateStore的实现以及exactly-once #54

Open lecssmi opened 4 years ago

lecssmi commented 4 years ago

根据介绍,默认的实现是将state存在hdfs,如果某个算子的某个分区的某个版本失败,那么会重新读取存档的分片数据,进行重写。但是如果在end端,如果没有幂等性和事务,一个分区的数据写入一部分后失败了,应该是会重试整个分片吧。那之前写入的那部分还是会出现重复。请问里面提到的end-to-end exactly-once 是怎么得来的呢?

lecssmi commented 4 years ago

spark的执行粒度都在batch,如果需要保证里面的每条record,那就需要失败后,每次都去遍历batch,代价也比较大吧。