4

我正在“本地”模式下运行 spark 应用程序。它正确地检查点到 checkpointFolder 配置中定义的目录。但是,我看到有两个问题会导致一些磁盘空间问题。

1)由于我们有多个用户运行应用程序,服务器上的检查点文件夹是由第一个执行它的用户创建的,这导致其他用户的运行由于操作系统上的权限问题而失败。有没有办法在 checkpointFolder 中提供相对路径,例如 checkpointFolder=~/spark/checkpoint?

2) 我使用 spark.worker.cleanup.enabled=true 配置在运行后清理检查点文件夹,但没有看到这种情况发生。有没有通过应用程序清理它的替代方法,而不是求助于一些 cron 工作?

4

2 回答 2

0

希望以下是明智的:

1)您可以每次创建唯一文件夹,例如 /tmp/spark_checkpoint_1578032476801

2a)您可以只删除应用程序末尾的文件夹。

2b)如果您使用 HDFS 进行检查点,则使用此类代码

  def cleanFS(sc: SparkContext, fsPath: String) = {
    val fs = org.apache.hadoop.fs.FileSystem.get(new URI(fsPath), sc.hadoopConfiguration)
    fs.delete(new Path(fsPath), true)
  }
于 2020-01-08T14:43:43.920 回答
0

看看这个答案!

PySpark:完全清理检查点

我遇到了同样的问题,在上面的链接中解决了!

于 2020-11-05T14:11:21.377 回答