
# 【Spark WebUI】HistoryServer缓存的应用被回收导致此类应用页面访问时出错
#### 用户问题
在History Server页面中访问某个Spark应用的页面时，发现访问时出错。
查看相应的HistoryServer日志后，发现有"FileNotFound"异常，相关日志如下所示：
```
2020-11-22 23:58:03,694 | WARN  | [qtp55429210-232] | /history/application_1479662594976_0001/stages/stage/ | org.sparkproject.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:628)
java.io.FileNotFoundException: ${BIGDATA_HOME}/tmp/spark/jobHistoryTemp/blockmgr-5f1f6aca-2303-4290-9845-88fa94d78480/09/temp_shuffle_11f82aaf-e226-46dc-b1f0-002751557694 (No such file or directory)
```
#### 原因分析
在History Server页面加载Task个数较多的Spark应用时，由于无法把全部的数据放入内存中，导致数据溢出到磁盘时，会产生前缀为"temp_shuffle"的文件。
HistoryServer默认会缓存50个Spark应用（由配置项"spark.history.retainedApplications"决定），当内存中的Spark应用个数超过这个数值时，HistoryServer会回收最先缓存的Spark应用，同时会清理掉相应的"temp_shuffle"文件。
当用户正在查看即将被回收的Spark应用时，可能会出现找不到"temp_shuffle"文件的错误，从而导致当前页面无法访问。
#### 处理步骤
如果遇到上述问题，可参考以下两种方法解决。
- 重新访问这个Spark应用的HistoryServer页面，即可查看到正确的页面信息。
- 如果用户场景需要同时访问50个以上的Spark应用时，需要调大"spark.history.retainedApplications"参数的值。
  请登录FusionInsight Manager管理界面，选择"集群 \> 服务 \> Spark2x \> 配置"，单击"全部配置"，在左侧的导航列表中，单击"JobHistory2x \> 界面"，配置如下参数。
  表1参数说明 
  | **参数**                             | **描述**                                                                   | **默认值** |
  |:---|:---|:---|
  | spark.history.retainedApplications | HistoryServer缓存的Spark应用数，当需要缓存的应用个数超过此参数值时，HistoryServer会回收最先缓存的Spark应用。 | 50      |
     
  
 
