【问题标题】:Purging checkpoint data from spark streaming从火花流中清除检查点数据
【发布时间】:2017-11-30 12:50:19
【问题描述】:

有没有一种方法可以清除 Java Spark 流应用程序编写的旧检查点数据?随着应用程序运行时间的延长,检查点导向器变得非常庞大。

【问题讨论】:

    标签: apache-spark spark-streaming


    【解决方案1】:

    我假设 Spark 版本 1.6

    val conf = new SparkConf().set("spark.cleaner.referenceTracking.cleanCheckpoints", "true")
    

    这在 Spark 1.4 中可用

    https://issues.apache.org/jira/browse/SPARK-2033

    另外,如果您仍在使用 DStreams,还有一个 cleanup 方法可以删除输入时间比最旧批次更早的检查点文件

    https://github.com/apache/spark/blob/master/streaming/src/main/scala/org/apache/spark/streaming/dstream/DStreamCheckpointData.scala

    【讨论】:

    • 我正在使用 spark 2.2 和数据集。默认情况下会清除检查点吗?我正在尝试为 Spark 2.2 找到类似的属性
    • 不,你必须像这样明确地设置它。 github.com/apache/spark/blob/master/core/src/test/scala/org/…
    • 谢谢。我尝试过这个。将其设置为 true 后,我开始收到类似“java.lang.IllegalStateException: Error reading delta file */state/0/1/1.delta does not exist”之类的错误。我认为它期待一些不再存在的检查点文件。但这项工作在开始后很快就失败了。
    • 我不确定为什么会发生这种情况。但是请您尝试设置, .set("spark.cleaner.referenceTracking.blocking", "true") .set("spark.cleaner.referenceTracking.blocking.shuffle", "true") .set("spark.cleaner .referenceTracking.cleanCheckpoints", "true")
    猜你喜欢
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多