【问题标题】:How to gracefully stop a spark dStream process如何优雅地停止 spark dStream 进程
【发布时间】:2020-04-07 02:41:18
【问题描述】:

我正在尝试从 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()
}

【问题讨论】:

    标签: apache-spark spark-streaming dstream


    【解决方案1】:

    阿尼尔,

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

    上面写着:

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

    【讨论】:

    • 谢谢@baitmbarek - 不幸的是,这不是我想要的。我想出了一种方法,方法是在 rdd 为空时停止 spark 上下文。
    • @Anil 你能否提供更多关于什么对你有用(代码是理想的)或文档的信息。我也面临同样的问题。
    猜你喜欢
    • 2023-03-16
    • 2019-11-10
    • 2011-03-12
    • 2016-08-23
    • 2011-01-04
    • 2016-11-16
    • 2023-03-22
    • 2021-06-04
    相关资源
    最近更新 更多