更新时间:2025-06-11 GMT+08:00

配置Spark作业失败时清理残留文件

操作场景

在Spark作业的运行过程中,当作业失败时,系统可能无法及时、完整地清理作业所产生的文件,从而造成文件残留。随着时间的推移,这些残留文件会不断累积,持续占用磁盘空间。一旦磁盘空间被大量占用,就极易触发磁盘空间告警,严重时甚至会影响到整个系统的正常运行。

为了有效规避此类问题,有必要对这些残留文件进行定时清理。通过设置合理的定时清理任务,能够及时清除那些无用的残留文件,确保磁盘空间得到合理利用,保障系统的稳定与高效运行。

约束与限制

  • 本章节仅适用于MRS 3.3.1-LTS及之后版本。
  • 本特性需要启动Spark JDBCServer服务,借助JDBCServer服务常驻进程的能力定期清理残留文件。
  • 本特性需要同时配置修改Spark客户端参数、 Spark JDBCServer服务端参数。
  • 支持清理目录:
    • /user/用户/.sparkStaging/
    • /tmp/hive-scratch/用户
  • 本特性仅支持使用Yarn作为资源调度器的场景。

配置参数

  1. 安装Spark客户端。

    详细操作请参考安装MRS客户端

  2. 使用客户端安装用户登录Spark客户端节点。

    在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:

    参数

    说明

    取值示例

    spark.yarn.session.to.application.clean.enabled

    在Spark作业的运行过程中,当作业失败时,系统可能无法及时、完整地清理作业所产生的文件,从而造成文件残留。

    • true:Spark将开启定期残余文件清理特性。
    • false:默认值,即默认不启用此功能。

    true

  3. 登录FusionInsight Manager系统。
  4. 选择“集群 > 服务 > Spark > 配置 > 全部配置 >JDBCServer(角色) > 自定义”,在“custom”中添加如下参数:

    参数

    说明

    取值示例

    spark.yarn.session.to.application.clean.enabled

    在Spark作业的运行过程中,当作业失败时,系统可能无法及时、完整地清理作业所产生的文件,从而造成文件残留。

    • true:Spark将开启定期残余文件清理特性。
    • false:默认值,即默认不启用此功能。

    true

    spark.clean.residual.tmp.dir.init.delay

    Spark中控制文件清理的初始延迟时间,单位min。

    5

    spark.clean.residual.tmp.dir.period.delay

    Spark中控制文件清理的间隔时间,单位min。

    10

  1. 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
  2. Spark服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。

    图1 修改Spark配置
    在Spark服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。

    组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。