gpt4 book ai didi

apache-spark - Spark 理论上会丢失失败作业的数据吗?

转载 作者:行者123 更新时间:2023-12-02 11:37:41 24 4
gpt4 key购买 nike

所以我们使用RDD做一个flatMap在一组数据上。然后我们使用映射操作转换每个元素。

val elementsRDD: RDD[Element] = ...

val result = elements.map(processData);

在一组固定的元素上,我们看到在每次运行时,如果某些执行程序在 map 操作期间死亡,spark 会启动新的执行程序,但它不会为操作提供数据,因此我们正在丢失数据。我们期望 Spark 应该提供数据或至少从头开始重新运行阶段。

我们使用 Spark 2.4 的最新 Kubernetes 功能(仍在开发中)

更新:文档说这是不可能的情况,但是我们从执行程序的日志记录表明,在对一组固定数据进行数据处理期间,我们丢失了不同的数据。此外,如果我们在一个过程中不杀死任何执行者,我们就不会丢失任何数据。

最佳答案

不会。为死去的 executor 处理的数据会丢失,但是当驱动程序注意到一个 executor 失败时,它会将死亡 executor 的作业分配给仍然活着的 executor。在每项工作都成功完成之前,Spark 不会成功地申请成功。

您可以阅读有关 Spark 高可用性的一些说明 here

更新:

正如@user6910411 所指出的,在某些情况下您可能会丢失数据:如果您的 Spark 应用程序使用的数据源不是持久的,或者它提供了临时数据。在这些情况下,修改 Spark 应用程序使用的数据可能会导致数据丢失。

关于apache-spark - Spark 理论上会丢失失败作业的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52494872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com