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

时间:2016-10-12 04:44:57

标签: apache-spark spark-streaming

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

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

sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true") 

Spark configuration: available properties

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

1 个答案:

答案 0 :(得分:14)

看看this blogpost。它是优雅地终止我遇到的流媒体工作的“最好的”方式。

  
    

如何通过关机信号:

         

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

         

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

         

e.g。 ps -ef | grep spark | grep DataPipelineStreamDriver | awk'{print $ 2}'| xargs kill -SIGTERM