关于spark-streaming的start(),awaitTermination()和stop()的用例是什么?

时间:2016-06-13 13:58:51

标签: spark-streaming

我是Spark-streaming的新手。 我正在开发一个从终端获取数据并加载到HDFS的应用程序。 我在互联网上搜索但是一旦被触发就无法理解如何停止流媒体应用程序?

如果您能解释一下sc.awaittermination()和sc.stop()的用例,也会很感激。

提前致谢。

3 个答案:

答案 0 :(得分:4)

streamingContext.awaitTermination() - > 它只是等待来自用户的终止信号。当它收到来自用户的信号(即CTRL + C或SIGTERM)时,它的流媒体上下文将被停止。它在java中是一种shutdownhook。

streamingContext.stop将立即停止流式上下文。您甚至可以告诉关于spark上下文的流式上下文。如果您只想停止流式上下文而不是停止上下文,那么您可以调用streamingContext.stop(false)

答案 1 :(得分:1)

开始 - 直到这一点,代码的实际执行才开始。在start()之后,JobScheduler启动,这又会启动创建作业的JobGenerator。

awaitTermination - 它在内部使用一些条件变量来检查是否在代码中显式调用了stop()或者应用程序已终止(Ctrl + C)。

答案 2 :(得分:0)

流查询预计将运行很长时间。一旦启动查询( start ),执行程序将继续运行,而驱动程序将处于空闲状态。为防止驱动程序退出,请调用 awaitTermination ;然后在确实需要停止查询时,调用停止