如何正常停止Spark dStream进程

时间:2019-12-13 16:03:46

标签: apache-spark spark-streaming dstream

我正在尝试从kafka流中读取数据,对其进行处理并将其保存到报告中。我想每天做一次这项工作。我正在使用dStreams。我可以在这种情况下使用的dStream中是否有与 trigger(Trigger.Once)等效的东西。感谢建议和帮助。

def main(args: Array[String]) {
val spark = ...
val ssc =  new StreamingContext(sc, Seconds(jobconfig.getLong("batchInterval")))
       val kafkaStream =
      KafkaUtils.createDirectStream[String, String](ssc, LocationStrategies.PreferConsistent, ConsumerStrategies.Subscribe[String, String](Array(jobconfig.getString("topic")), kafkaParams))
      kafkaStream.foreachRDD(rdd => {
.
.
.
.
}
    sqlContext.clearCache()
    ssc.start()
    ssc.awaitTermination()
}

1 个答案:

答案 0 :(得分:0)

Anil

根据文档,您应该使用spark.streaming.stopGracefullyOnShutdown参数:https://spark.apache.org/docs/latest/configuration.html

它说:

  

如果为true,Spark会在JVM上正常关闭StreamingContext   关闭而不是立即关闭。