我正在尝试从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()
}
答案 0 :(得分:0)
Anil
根据文档,您应该使用spark.streaming.stopGracefullyOnShutdown
参数:https://spark.apache.org/docs/latest/configuration.html
它说:
如果为true,Spark会在JVM上正常关闭StreamingContext 关闭而不是立即关闭。