0

我正在尝试从 kafka 流中读取数据,对其进行处理并将其保存到报告中。我想每天运行一次这项工作。我正在使用 dStreams。dStreams中是否有等效的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()
}
4

1 回答 1

0

阿尼尔,

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

它说 :

如果为 true,Spark 会在 JVM 关闭时优雅地关闭 StreamingContext,而不是立即关闭。

于 2019-12-13T20:16:01.570 回答