gpt4 book ai didi

yarn - 如何在YARN上正常停止Spark Streaming应用程序?

转载 作者:行者123 更新时间:2023-12-04 04:29:43 25 4
gpt4 key购买 nike

我正在YARN上以集群模式在YARN上运行Spark Streaming应用程序,并且试图实现正常关闭,以便在应用程序被终止时将在停止之前完成当前微批处理的执行。

在完成一些教程之后,我已经将spark.streaming.stopGracefullyOnShutdown配置为true,并将以下代码添加到了我的应用程序中:

sys.ShutdownHookThread {
log.info("Gracefully stopping Spark Streaming Application")
ssc.stop(true, true)
log.info("Application stopped")
}

但是当我用
yarn application -kill application_1454432703118_3558
此时执行的微型批处理尚未完成。

驱动程序中,我看到打印的第一行日志(“正常停止Spark Streaming应用程序”),但没有最后一行(“应用程序已停止”)。
ERROR yarn.ApplicationMaster: RECEIVED SIGNAL 15: SIGTERM
INFO streaming.MySparkJob: Gracefully stopping Spark Streaming Application
INFO scheduler.JobGenerator: Stopping JobGenerator gracefully
INFO scheduler.JobGenerator: Waiting for all received blocks to be consumed for job generation
INFO scheduler.JobGenerator: Waited for all received blocks to be consumed for job generation
INFO streaming.StreamingContext: Invoking stop(stopGracefully=true) from shutdown hook

执行者日志中,我看到以下错误:
ERROR executor.CoarseGrainedExecutorBackend: Driver 192.168.6.21:49767 disassociated! Shutting down.
INFO storage.DiskBlockManager: Shutdown hook called
WARN remote.ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkDriver@192.168.6.21:49767] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
INFO util.ShutdownHookManager: Shutdown hook called

我认为问题与YARN如何向应用程序发送终止信号有关。关于如何使应用程序正常停止的任何想法?

最佳答案

您应该转到执行程序页面查看驱动程序在哪里运行(在哪个节点上)。 ssh到该节点并执行以下操作:

ps -ef | grep 'app_name'

(将app_name替换为您的类名/appname)。它将列出几个过程。看一下过程,有些会是其他的。选择最父进程的ID并发送SIGTERM
kill pid

一段时间后,您会看到您的应用已正常终止。

另外,现在您无需添加这些 Hook 即可关机。
使用 spark.streaming.stopGracefullyOnShutdown配置帮助正常关闭

关于yarn - 如何在YARN上正常停止Spark Streaming应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36911442/

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