背景信息
某现网环境每天有大量的MapReduce作业提交到Yarn上执行。发现HDFS上的临时目录/tmp下文件数量多达500万。经排查Yarn的临时目录/tmp/hadoop-yarn/staging/<user>/.staging下有大量应用执行的临时文件残留。
MapReduce的AapplicationMaster异常结束,流程没有走到文件清理步骤就非正常退出。
由于此临时目录下的文件清理操作是在ApplicationMaster退出过程中执行的,如果在执行清理前ApplicationMaster就异常结束了,就会导致此临时目录下的文件残留。ApplicationMaster异常退出通常有以下几种可能的触发场景:
- 执行yarn application –kill <application_id>命令,MapReduce被Yarn强制Kill掉。
- 在ResourceManager WebUI上点击application页面的Kill Application按钮,MapReduce被强制kill掉。
- 用户在后台对MapReduce的MRAppMaster进程执行kill操作,导致MapReduce作业失败。
- AapplicationMaster执行过程中发生OOM或JVM crash等不可恢复的异常情况,意外退出。
- AapplicationMaster在执行清理过程中HDFS不可用,导致清理失败。
- 用户配置了“application.timeout.interval”参数,作业没有在配置的时间内完成,被Yarn强制kill。