【问题标题】:Stop streaming context in Spark Streaming after a period of time一段时间后停止 Spark Streaming 中的流式处理上下文
【发布时间】:2015-09-15 23:36:15
【问题描述】:

我构建了一个从 Twitter 接收 DStreams 的应用程序,停止 Streaming 上下文的唯一方法是停止执行。我想知道是否有办法在不停止整个应用程序的情况下设置时间并终止流式套接字?

【问题讨论】:

    标签: stream apache-spark twitter4j spark-streaming


    【解决方案1】:

    您可以使用streamingContext 对象上的awaitTermination() 方法等待指定时间。参考this

    【讨论】:

    • Eclipse 给了我这个标记,JavaStreamingContext 类型的 awaitTermination(long) 方法已弃用!火花 1.4.0。我用了awaitTerminationOrTimeout(Long),还是不行..它继续打印。
    • public void awaitTermination(long timeout) 已弃用。从 1.3.0 开始,由 awaitTerminationOrTimeout(Long) 取代。等待执行停止。执行期间发生的任何异常都将在此线程中抛出。参数:timeout - 等待时间,以毫秒为单位
    【解决方案2】:

    你可以使用任何一个

    awaitTerminationOrTimeout(long)
    

    如上一个答案中所述,或者您可以从其他线程手动停止流式传输上下文:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 2017-06-24
      • 1970-01-01
      相关资源
      最近更新 更多