一段时间后停止Spark Streaming作业

时间:2017-07-03 06:51:48

标签: spark-streaming apache-spark-2.0

有一些方法可以在一段时间后终止火花流式传输作业,因此驱动程序不会丢失,而其余的API会将作业显示为已完成。

1 个答案:

答案 0 :(得分:1)

awaitTerminationOrTimeout(timeout: Long)中选择timeout值的超时功能将在超时到期后继续执行主程序。

之后我们需要有一些其他的等待函数来保持火花上下文的存在以供检查。

类似的东西:

// create streaming context
// do dstream stuff
streamingContext.awaitTerminationOrTimeout(streamingTimeout)
streamingContext.stop(stopSparkContext = false)
Thread.sleep(afterStreamingTimeout) // keep alive for some time.
// the end

作为替代方案,您可以使用交互式环境(如笔记本)进行这类实验。在那里,您可以通过发出streamingContext.stop(stopSparkContext = false)手动停止上下文,只要笔记本处于活动状态,火花上下文仍然有效。 (这是我用来制作原型的)