如何优雅地停止运行Spark Streaming应用程序?

AKC*_*AKC 8 apache-spark spark-streaming

我如何阻止火花流?我的火花流工作正在持续运行.我想以优雅的方式停下来.

我在下面看到了关闭流应用程序的选项.

sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true") 
Run Code Online (Sandbox Code Playgroud)

Spark配置:可用属性

但是,如何在正在运行的应用程序上更新此参数?

Gle*_*olt 15

看看这篇博文.它是优雅地终止我遇到的流媒体工作的"最好的"方式.

如何通过关机信号:

现在我们知道如何确保火花流中的正常关闭.但是我们怎样才能将关闭信号传递给火花流.一个天真的选择是在我们运行驱动程序的屏幕终端上使用CTRL + C命令,但显然它不是一个好的选择.我正在使用的一个解决方案是grep驱动程序的spark spark并发送SIGTERM信号.当驱动程序获得此信号时,它会启动应用程序的正常关闭.我们可以在一些shell脚本中编写如下命令,然后运行脚本来传递shutdown信号:

ps -ef | grep spark | grep | awk'{print $ 2}'| xargs kill -SIGTERM

例如ps -ef | grep spark | grep DataPipelineStreamDriver | awk'{print $ 2}'| xargs kill -SIGTERM

  • 是的,您也需要该设置:) 但请阅读完整的博文。 (2认同)