【发布时间】:2018-09-26 15:46:58
【问题描述】:
所以我们使用RDD 并对一组数据执行flatMap。然后我们使用映射操作转换每个元素。
val elementsRDD: RDD[Element] = ...
val result = elements.map(processData);
在一组固定的元素上,我们看到在每次运行时,如果某些执行器在 map 操作期间死亡,spark 会启动新的执行器,但它不会为操作提供数据,因此我们会丢失数据。我们期望 Spark 应该提供数据或至少从头开始重新运行阶段。
我们使用 Spark 2.4 的最新 Kubernetes 功能(仍在开发中)
更新:文档说这是不可能的情况,但是我们从执行程序的日志记录表明,在对一组固定数据进行数据处理期间,我们丢失了不同的数据。此外,如果我们在一个过程中不杀死任何执行者,我们就不会丢失任何数据。
【问题讨论】: