配置Spark作业失败时清理残留文件
操作场景
在Spark作业的运行过程中,当作业失败时,系统可能无法及时、完整地清理作业所产生的文件,从而造成文件残留。随着时间的推移,这些残留文件会不断累积,持续占用磁盘空间。一旦磁盘空间被大量占用,就极易触发磁盘空间告警,严重时甚至会影响到整个系统的正常运行。
为了有效规避此类问题,有必要对这些残留文件进行定时清理。通过设置合理的定时清理任务,能够及时清除那些无用的残留文件,确保磁盘空间得到合理利用,保障系统的稳定与高效运行。
约束与限制
- 本章节仅适用于MRS 3.3.1-LTS及之后版本。
- 本特性需要启动Spark JDBCServer服务,借助JDBCServer服务常驻进程的能力定期清理残留文件。
- 本特性需要同时配置修改Spark客户端参数、 Spark JDBCServer服务端参数。
- 支持清理目录:
- /user/用户/.sparkStaging/
- /tmp/hive-scratch/用户
- 本特性仅支持使用Yarn作为资源调度器的场景。
配置参数
- 安装Spark客户端。
详细操作请参考安装MRS客户端。
- 使用客户端安装用户登录Spark客户端节点。
在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:
参数
说明
取值示例
spark.yarn.session.to.application.clean.enabled
在Spark作业的运行过程中,当作业失败时,系统可能无法及时、完整地清理作业所产生的文件,从而造成文件残留。
- true:Spark将开启定期残余文件清理特性。
- false:默认值,即默认不启用此功能。
true
- 登录FusionInsight Manager系统。
- 选择“集群 > 服务 > 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
- 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
- Spark服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。
图1 修改Spark配置在Spark服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。
组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。