如何在Apache Spark中处理执行程序失败

时间:2018-12-13 11:32:06

标签: apache-spark pyspark apache-spark-sql

我当时使用spark-submit来运行该工作,而那时我们丢失了执行者,并且可以恢复或恢复到某个点,如果恢复了,我们将如何恢复,以及我们如何找回该执行者

1 个答案:

答案 0 :(得分:1)

如果这就是您要的内容,则无法以编程方式处理应用程序中的执行器故障。 您可以配置Spark配置属性,以指导实际的作业执行,包括YARN如何安排作业以及处理任务和执行程序故障。

https://spark.apache.org/docs/latest/configuration.html#scheduling

您可能要检出的一些重要属性:

  

spark.task.maxFailures(default = 4):任何特定任务的失败次数   在放弃工作之前。失败总数   跨不同的任务不会导致工作失败;一个特定的   任务必须失败此尝试次数。应该大于或   等于1。允许的重试次数=此值-1。

     

spark.blacklist.application.maxFailedExecutorsPerNode(默认= 2):(实验性)   整个过程中必须将多少个不同的执行者列入黑名单   应用程序,然后将该节点列入整个黑名单   应用。列入黑名单的节点将自动添加回   在指定的超时后可用资源池   spark.blacklist.timeout。请注意,尽管有了动态分配,   节点上的执行者可能会被标记为空闲并被回收   集群管理器。

     

spark.blacklist.task.maxTaskAttemptsPerExecutor(默认值= 1):(实验性)   对于给定的任务,可以在一个执行程序上重试多少次   在执行者将该任务列入黑名单之前。