在一段时间后停止Spark Streaming的流上下文。

15

我正在构建一个从Twitter获取DStreams数据的应用程序,停止Streaming上下文的唯一方法是停止执行。我想知道是否有一种方法可以设置一个时间并终止流式套接字而不会停止整个应用程序?

2个回答

8
你可以使用以下两种方式之一:
awaitTerminationOrTimeout(long)

如前面的答案所述,或者您可以在其他线程中手动停止流上下文:

    // in the main thread
    awaitTermination(); // will wait forever or until the context is stopped

    // in another thread
    streamingContext.stop();

3
您可以在streamingContext对象上使用awaitTermination()方法等待指定时间。请参阅此处

Eclipse 给我这个标记,JavaStreamingContext 类型的 awaitTermination(long) 方法已过时!Spark 1.4.0。我使用了 awaitTerminationOrTimeout(Long),但仍然不起作用...它一直在打印。 - user4658980
public void awaitTermination(long timeout) 已弃用。从1.3.0开始,已被awaitTerminationOrTimeout(Long)替换。 等待执行停止。在此线程中将抛出执行期间发生的任何异常。 参数: timeout - 等待时间(以毫秒为单位) - urug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接