如何阻止火花流? 我的火花流工作正在持续运行。我想以优雅的方式停下来。
我在下面看到了关闭流应用程序的选项。
sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true")
Spark configuration: available properties
但是,如何在正在运行的应用程序上更新此参数?
答案 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