换句话说,我没有在Spark流上下文中将'duration'设置为值,而是将其设置为(套接字关闭时间 - 套接字打开时间)
答案 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();