【问题标题】:How to set Spark timeout ( application Killing itself )如何设置 Spark 超时(应用程序自行杀死)
【发布时间】:2021-10-15 01:29:54
【问题描述】:

我想在我的 spark 工作中添加一个安全措施,如果他们在 X 小时后没有完成就杀死他们自己。 (在yarn模式下在集群模式下使用spark 2.4.3)

在 spark 中没有找到任何可以帮助我实现我想要的配置。

我试着这样做:

    val task = new java.util.TimerTask {
        def run():Unit = {
            val p = Runtime.getRuntime.exec(Array[String]("/bin/sh", "-c", s"yarn application -kill ${sc.applicationId}")) // this code can only run on the cluster
            p.waitFor()
            sc.stop()
        }
    }
    timeoutProcess.schedule(task, X) // where X is 10000 for 10s for testing

但似乎没有完成杀死应用程序,希望有任何关于此的想法或想法。

试图环顾四周,但没有找到任何好主意。

【问题讨论】:

    标签: apache-spark hadoop-yarn spark2.4.4


    【解决方案1】:

    为作业设置超时的正确方法是通过纱线。

    检查这个 hadoop Jira

    您可以像这样使用 cli:

    yarn application -appId <your app id> -updateLifetime 3600
    

    这将在您运行此命令后 3600 seconds 之后终止您的应用程序。

    或者您也可以使用 Rest 端点来更新它。

    【讨论】:

    • 感谢您的评论,您是否知道在 Spark 工作中自己完成此任务的任何方法?
    • 要么像你现在正在做的那样运行答案中提到的 CLI 方式..在主驱动程序中,要么进行休息调用。
    • 将测试通过驱动程序运行它是否有效。谢谢
    猜你喜欢
    • 2017-04-16
    • 2015-06-16
    • 2020-07-28
    • 1970-01-01
    • 2020-12-27
    • 2017-01-03
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    相关资源
    最近更新 更多