yarn应用报错:java.nio.file.NoSuchFileException: /tmp/hadoop-hadoop/nm-local-dir/usercache/root/appcache/***

yarn applicationmaster报错:找不到/tmp/hadoop-hadoop/nm-local-dir/usercache/root/appcache
1. 问题概述
最近发现yarn中的application集体停止运行,查看历史应用Exception详情,出现如下错误:java.nio.file.NoSuchFileException: /tmp/hadoop-hadoop/nm-local-dir/usercache/root/appcache/application_1762757712752_0001/blobStore-ae91fe59-7663-44cc-bdda-169734ca1cd1/incoming/temp-00000198,如下所示:

image

2. 问题定位

由于tmp目录是系统的临时目录,会被定期删除。/tmp/hadoop-hadoop/nm-local-dir/usercache/root/appcache/application_1762757712752_0001/blobStore-ae91fe59-7663-44cc-bdda-169734ca1cd1/incoming/temp-00000198可能已经被系统删除,导致nodemanager无法找到相关文件而停止运行。

3. 机理分析

发现yarn-site.xml中缺少yarn.nodemanager.local-dirs配置,

YARN 的yarn.nodemanager.local-dirs参数若未显式配置,会使用Hadoop 内置的默认值:/tmp/hadoop-${user}/nm-local-dir。对应到上面的环境中,就是/tmp/hadoop-hadoop/nm-local-dirhadoop为 NM 运行用户)。
 
4. 处理措施
在yarn-site.xml中增加如下配置后,重启nodemanager
<property>
    <!-- NM本地目录:持久化路径,多个目录用逗号分隔(推荐多磁盘挂载) -->
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/hadoop/yarn/nm-local-dir</value>
    <description>NodeManager本地文件存储目录,避免使用/tmp</description>
</property>

<!-- 可选:同时配置NM日志目录,避免日志也存/tmp -->
<property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/hadoop/yarn/nm-log-dir</value>
</property>
 
posted @ 2025-12-15 11:14  蓬莱寒剑  阅读(2)  评论(0)    收藏  举报