Apache spark spark应用程序状态中的失败和错误有什么区别

Apache spark spark应用程序状态中的失败和错误有什么区别,apache-spark,driver,scheduling,distributed-computing,bigdata,Apache Spark,Driver,Scheduling,Distributed Computing,Bigdata,我正在尝试创建已提交spark应用程序的状态图。当一个应用程序被认为失败的时候,我有点迷失了方向 各州来自这里: 这个阶段非常重要,因为说到大数据,Spark非常棒,但让我们面对它,我们还没有解决问题 当任务/作业失败时,Spark会重新启动它(回想一下Spark提供的主要抽象RDD是一个有弹性的分布式数据集,这不是我们在这里寻找的,但它会给出直觉) 我使用Spark 1.6.2,当作业/任务被标记为失败时,我的集群会重新启动作业/任务3次 例如,我最近的一份工作需要重新启动整个阶段: 在集

我正在尝试创建已提交spark应用程序的状态图。当一个应用程序被认为失败的时候,我有点迷失了方向

各州来自这里:


这个阶段非常重要,因为说到大数据,Spark非常棒,但让我们面对它,我们还没有解决问题


当任务/作业失败时,Spark会重新启动它(回想一下Spark提供的主要抽象RDD是一个有弹性的分布式数据集,这不是我们在这里寻找的,但它会给出直觉)

我使用Spark 1.6.2,当作业/任务被标记为失败时,我的集群会重新启动作业/任务3次

例如,我最近的一份工作需要重新启动整个阶段:

在集群/应用程序中,可以看到尝试ID,这里是应用程序的第三次也是最后一次尝试:


如果该尝试被标记为失败(无论出于何种原因,例如内存不足、DNS错误、GC分配内存、磁盘失败、节点未响应4个心跳(可能已关闭)等),然后Spark重新启动作业。

这基本上意味着失败的作业可以重新启动可配置的次数…此时可以重新启动stage@Pangea例如,当Spark注意到第一次尝试失败时,它将继续并计划重新启动作业。但是,这不会立即完成!例如,我的工作有2000名执行人。一旦第一次尝试失败,它将失去所有的执行者和所有已经取得的进展。这意味着,第二次尝试将从头开始,这意味着作业已被接受,但必须等待调度程序处于运行状态(在该阶段,我们的工作处于重新启动阶段,即Spark为第二次尝试运行做准备的过程似乎没有被接受的状态@Pangea作业被接受,而不是驱动程序。但在任何情况下,如果您愿意,您可以忽略它(我的意思是它可能取决于调度程序)。请检查它。一般来说,接受意味着该作业已在群集上接受,但尚未运行。谢谢。如果您可以帮助我从StanLone scheduler完成此状态图,那将非常好。我可以将此添加到gitbook,您可以参与其中