【发布时间】:2016-11-03 17:30:53
【问题描述】:
TL;DR
有没有办法让 pyspark 作业超时?如果运行时间超过预先指定的时间,我希望以集群模式运行的 spark 作业自动终止。
加长版:
the documentation 中列出的神秘超时最多为 120 秒,除了无限的超时,但只有在 spark.dynamicAllocation.enabled 设置为 true 时才使用此超时,但默认情况下(我没有触及任何配置参数这个集群)是假的。
我想知道,因为我有一个代码,对于特定的病态输入,运行速度会非常慢。对于预期的输入,该工作将在一个小时内终止。检测病态输入与尝试解决问题一样困难,因此我无法选择进行巧妙的预处理。代码的细节很无聊且无关紧要,因此我将省去您阅读它们的时间=)
我正在使用 pyspark,所以我打算像 this 那样装饰导致挂起的函数,但似乎这个解决方案在集群模式下不起作用。我通过 bash 脚本中的 spark-submit 调用我的 spark 代码,但据我所知, bash 在 spark 作业运行时“进入睡眠状态”,并且只有在 spark 作业终止后才能获得控制权,所以我不认为这个是一种选择。
实际上,如果我做了一些聪明的事情,bash 的事情可能是一个解决方案,但我必须获得像 this 这样的工作的驱动程序 ID,现在我在想“这是太多的想法和打字对于应该内置的像超时这样简单的东西。”
【问题讨论】:
-
您分享的详细信息越多,我们为您提供帮助的机会就越大。
-
我只想知道某处是否有一个配置参数,如果运行时间超过某个指定时间,会自动终止在集群模式下运行的 Spark 作业。
-
我添加了一些有关我尝试过的事情的更多相关信息!
标签: apache-spark pyspark