
# 配置Spark作业失败时清理残留文件
#### 操作场景
在Spark作业的运行过程中，当作业失败时，系统可能无法及时、完整地清理作业所产生的文件，从而造成文件残留。随着时间的推移，这些残留文件会不断累积，持续占用磁盘空间。一旦磁盘空间被大量占用，就极易触发磁盘空间告警，严重时甚至会影响到整个系统的正常运行。
为了有效规避此类问题，有必要对这些残留文件进行定时清理。通过设置合理的定时清理任务，能够及时清除那些无用的残留文件，确保磁盘空间得到合理利用，保障系统的稳定与高效运行。
#### 约束与限制
- 本章节仅适用于MRS 3.3.1-LTS及之后版本。
- 本特性需要启动Spark JDBCServer服务，借助JDBCServer服务常驻进程的能力定期清理残留文件。
- 本特性需要同时配置修改Spark客户端参数、 Spark JDBCServer服务端参数。
- 支持清理目录：
  - /user/用户/.sparkStaging/
  
  - /tmp/hive-scratch/用户
   
- 本特性仅支持使用Yarn作为资源调度器的场景。
 
#### 配置参数
1. 安装Spark客户端。 
   详细操作请参考[安装MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2127.html)。
   
   
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   |
      
   
   

5. 修改参数配置后，单击"保存"，根据界面提示操作后，等待配置保存成功。
6. Spark服务端配置更新后，如果"配置状态"为"配置过期"，则需重启组件以使配置生效。 
   图1修改Spark配置   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002310893036.png "点击放大")
   在Spark服务概览页面，选择"更多 \> 重启服务/滚动重启服务"，验证管理员密码后，等待服务重启成功。
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   组件重启期间将无法对外提供服务，可能会影响集群的上层业务正常运行，请在业务空闲期或确认操作无影响后再执行本操作。
   
   
 
