yarn设置的目录使用超过90%无法启动

  使用报错
内容纲要

概要描述


YARN 提供了一种判断 NodeManager 是否健康的机制:检测磁盘损坏数目。管理员可通过参数:
yarn.nodemanager.disk-health-checker.enable
设置是否启用该功能,默认情况是启用的。

该机制是由 LocalDirsHandlerService 服务实现,周期性检测 NodeManager 本地磁盘的好坏,一旦发现正常磁盘的比例低于一定的比例,则认为节点处于不健康状态,便通过心跳告诉 ResourceManager,从而不再接收到新的任务。

管理员配置YARN时,会设置NodeManager的本地可用目录列表:

  • 本地目录:通常用于存储应用程序中间结果,比如 MapReduce 作业中 Map Task 的中间输出结果。由参数 yarn.nodemanager.local-dirs 指定
  • 日志目录:存放 Container 运行日志。由参数 yarn.nodemanager.log-dirs 指定

这些目录的可用性直接决定着 NodeManager 的可用性。因此,NodeManager 作为节点的代理和管理者,应该负责检测这两类目录列表的可用性,并及时将不可用目录剔除掉。NodeManager 判断一个目录所在磁盘好坏的方法是:如果一个目录具有读、写和执行权限,并且有满足要求的可用磁盘空间,则认为它是正常的,否则将被加入坏磁盘列表。LocalDirsHandlerService 服务中专门有一个定时任务周期性检测这些磁盘的好坏,一旦发现正常磁盘的比例低于阈值,该节点就被标记处于不健康状态,此后 ResourceManager 不再为它分配新任务。

详细说明

具体通过如下配置参数来监测磁盘损坏情况:

  1. yarn.nodemanager.disk-health-checker.enable:
    如果为 true 表示启用磁盘健康监测,否则禁用监测。
  2. yarn.nodemanager.disk-health-checker.interval-ms:
    健康监测的时间间隔,以毫秒为单位,默认为 2 分钟,即每 2 分钟检查一次。
  3. yarn.nodemanager.disk-health-checker.min-healthy-disks:
    健康磁盘最小比例。当健康磁盘比例低于该值时,NodeManager 不会再接收和启动新的任务。默认值为 0.25。
  4. yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage:
    磁盘的最大使用率。当一块磁盘的使用率超过该值时,就会标记该磁盘处于不健康状态,不再使用该磁盘。默认为 90,即可以使用磁盘 90% 的空间。
  5. yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb:
    磁盘的最少剩余空间。当某块磁盘剩余空间低于该值时,就会标记该磁盘处于不健康状态,不再使用该磁盘。默认值为 0,即可以使用整块磁盘。

故障说明


客户反馈,yarn组件的一个nodemanager节点无法启动,检查该节点的nodemanager日志可以看到,存在多个磁盘磁盘报如下错误:

/vdir/mnt/disk*/hadoop/yarn/local error, used space above threshold of 90.0%, removing from list of valid directories
/vdir/mnt/disk*/hadoop/yarn/logs error, used space above threshold of 90.0%, removing from list of valid directories

file

检查磁盘使用率,确实都是用到90%以上,

file

解决方案


方案一:清理磁盘空间

将这些盘上面不用的文件删除或者挪走,保证使用率在90%以下,再重启异常的NM

方案二:yarn修改参数【推荐方案】

在manager页面,yarn组件新增下面2个自定义参数,然后配置服务、重启yarn。

参数 配置文件 解释
yarn.nodemanager.disk-health-checker.min-healthy-disks 0.0 yarn-site.xml 默认值是0.25,表示25%。NodeManager上最少保证健康磁盘比例,当健康磁盘比例低于该值时,NodeManager不会再接收和启动新的Container
yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 100.0 yarn-site.xml 磁盘的最大使用率。当一块磁盘的使用率超过该值时,就会标记该磁盘处于不健康状态,不再使用该磁盘。默认为 90,即可以使用磁盘 90% 的空间。

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。