内容纲要
概要描述
yarn服务的 /mnt/diskN/hadoop/yarn/local
数据目录占用磁盘空间大,导致磁盘剩余空间过低问题说明。
详细说明
一般是由于短时间内提交了大量任务到yarn,且对yarn配置的数据目录磁盘不充足,就会导致该目录占用过多的磁盘空间,本案例提供以下两种方案来解决该问题。
- NodeManager 上的目录可以分为两种:
- 数据目录: 存放执行Container所需的数据(比如可执行程序或JAR包、配置文件等)和运行过程中产生的临时数据,由
yarn.nodemanager.local-dirs
参数指定,本文档涉及到的是数据目录相关的问题; - 日志目录: 存放Container运行输出日志,由
yarn.nodemanager.log-dirs
参数指定;
-
解决方法一:调整 NodeManager 的用户缓存保留设置
在yarn服务参数页面添加以下自定义参数,根据实际环境调整为适当的大小,修改完之后需要配置服务并重启yarn服务生效。
yarn.nodemanager.localizer.cache.cleanup.interval-ms
: 这是缓存清理间隔时间。默认值为 600000 毫秒。此间隔时间后,如果缓存大小超出 yarn.nodemanager.localizer.cache.target-size-mb 中设置的值,则将删除未被运行容器使用的文件。yarn.nodemanager.localizer.cache.target-size-mb
: 这是缓存允许的最大磁盘空间。默认值为 10240 MB。当缓存磁盘大小超出此值时,将按照 yarn.nodemanager.localizer.cache.cleanup.interval-ms 中设置的时间间隔删除未被运行容器使用的文件。
-
解决方法二:扩充磁盘
如果生产环境配置的磁盘较少,建议扩充磁盘;
yarn.nodemanager.local-dirs
: 通过该参数添加数据磁盘。修改后需要保存配置,然后配置服务并重启yarn服务生效。