Apache spark 如何停止优雅地运行Spark流媒体应用程序?

Apache spark 如何停止优雅地运行Spark流媒体应用程序?,apache-spark,spark-streaming,Apache Spark,Spark Streaming,如何停止火花流? 我的spark流媒体作业正在持续运行。我想优雅地停下来 我在下面看到了关闭流媒体应用程序的选项 sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true") 但是,如何在正在运行的应用程序上更新此参数?请查看。这是我遇到的优雅地终止流媒体工作的“最好”方式 如何传递停机信号: 现在我们知道了如何确保火花流中的优雅关机。但是我们如何才能将关闭信号传递给spark streaming呢。一个简单的选择是在我们

如何停止火花流? 我的spark流媒体作业正在持续运行。我想优雅地停下来

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

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

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

请查看。这是我遇到的优雅地终止流媒体工作的“最好”方式

如何传递停机信号:

现在我们知道了如何确保火花流中的优雅关机。但是我们如何才能将关闭信号传递给spark streaming呢。一个简单的选择是在我们运行驱动程序的屏幕终端使用CTRL+C命令,但显然这不是一个好的选择。 我正在使用的一种解决方案是,grep spark流的驱动程序进程并发送SIGTERM信号。当驱动程序收到此信号时,它启动应用程序的正常关闭。 我们可以在一些shell脚本中编写如下命令,并运行脚本传递关机信号:

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


创建sparkcontext后,您不能设置sparkcontext的sparkConf。您所说的优雅是什么意思?当你的应用程序停止时,是否发生任何错误?我想手动停止应用程序。有两种情况。我很清楚当发生错误时如何停止它,我在代码中有它。但如果我想手动停止,我正在寻找一种机制。这能回答你的问题吗?我需要设置sparkConf.set(“spark.streaming.stopGracefullyOnShutdown”、“true”)吗在我运行上面的命令之前?是的,您也需要设置:),但是请阅读完整的blogpost。明白了。启用此选项后,如果出现异常,如何在代码中正常关闭。blogpost说-我们可以设置此参数,然后调用方法ssc.start()和ssc.awaittemination()。无需调用ssc.stop方法。否则应用程序可能会在关机期间挂起。我尝试了以下方法:ps-ef | grep spark | grep driver-201611012015113-0016 | awk'{print$2}'| xargs kill-SIGTERM,参数为true。当我在linux终端上运行此命令时,我正在接收。用法:kill[-s signal |-p][a]pid…kill-l[信号]