【问题标题】:Java + Spark - temp folder not getting cleanedJava + Spark - 临时文件夹未清理
【发布时间】:2018-01-19 21:36:43
【问题描述】:

我们在项目中使用 Spark + Java,使用的 Hadoop 发行版是 MapR。

在我们的 Spark 作业中,我们保留数据(在磁盘级别)。

作业完成后,/tmp/ 文件夹内有大量临时数据。 我们如何确保作业执行完成后 /tmp/ 文件夹(临时数据)为空。

我在下面找到了一个链接: Apache Spark does not delete temporary directories

但不确定如何设置以下属性:

  • spark.worker.cleanup.enabled

  • spark.worker.cleanup.interval

  • spark.worker.cleanup.appDataTtl

另外,在哪里设置这些属性: 1. 在代码中 或者 2. 在 spark 配置中

我们正在使用 spark-submit 命令以集群模式(使用 master yarn)运行该作业。

谢谢 阿努杰

【问题讨论】:

    标签: java apache-spark mapr


    【解决方案1】:
    1. 创建 spark-env.sh 文件的备份。 在文本编辑器(例如 vi)中打开文件并找到“SPARK_WORKER_OPTS”

    2. 在此行的正下方,添加或更新:SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=172800"

    3. 这应该会启用工作日志清理,并将保留日志不超过 48 小时,默认检查时间为每 30 分钟一次。

    重启 Spark 就完成了!

    【讨论】:

    • 但这仅适用于独立模式。我们以集群模式运行作业。根据 Spark 文档: spark.worker.cleanup.enabled false 启用工作程序/应用程序目录的定期清理。请注意,这只影响独立模式,因为 YARN 的工作方式不同。仅清理已停止应用程序的目录。 spark.worker.cleanup.appDataTtl 604800 (7 days, 7 * 24 * 3600) 在每个工作人员上保留应用程序工作目录的秒数。这是一个生存时间,应该取决于可用磁盘空间的数量
    • 另外这仅用于清理日志。但我们正在清理临时目录。
    • 你找到解决办法了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多