如何在网络连接(TCP IP)关闭时停止Spark Streaming上下文?

时间:2014-01-06 12:41:27

标签: hadoop streaming apache-spark

换句话说,我没有在Spark流上下文中将'duration'设置为值,而是将其设置为(套接字关闭时间 - 套接字打开时间)

2 个答案:

答案 0 :(得分:4)

您可以使用StreamingListner接口侦听接收器断开连接,然后关闭流式上下文。

用作

// define listener
class MyListener extends StreamingListener {
  override def onReceiverStopped(...) {
    streamingContext.stop()
  }
} 

// attach listener
streamingContext. addStreamingListener(new MyListener())

答案 1 :(得分:0)

通过在流式监听器中执行ssc.stop(),当您的流式传输出现错误或被终止时,此功能将触发停止。还有另一个触发器,例如批次启动,完成等等。

    ssc.addStreamingListener(new StreamingListener() {

    @Override
      public void onReceiverError(StreamingListenerReceiverError receiverError) {
      System.out.println("Do what u want");
      ssc.stop();
      }

    @Override
      public void onReceiverStopped(StreamingListenerReceiverStopped receiverStopped) {
      System.out.println("Do what u want");
      ssc.stop(true,true); 
      }
    }

    ssc.start();