【前言】
通常后端服务都会设计自身的健康检测逻辑。
所谓的健康检测,就是定期检测节点运行所必须的环境是否满足需求,如果不满足则拒绝提供服务。
HDFS和YARN中涉及的各个服务也不例外,基本上也都设置了相应的检测逻辑。
当检测不满足指定条件时拒绝提供服务,直到所需的条件满足要求。
下面就来总结下hdfs与yarn涉及的组件的健康检测逻辑及相关配置。
【NameNode】
Namenode存储了整个HDFS的元数据信息,而这些元数据信息会持久化到磁盘上,如果磁盘满了,元数据信息无法写入的话,可能会导致数据的丢失。
因此,Namenode在启动后,会定期对fsimage和editlog存储的目录进行检测,当目录所在的磁盘空间小于设置的阈值时,namenode会进入安全模式,直到磁盘空间大于设置的阈值时,才离开安全模式。
涉及的配置项有:
dfs.namenode.resource.check.interval
namenode进行检测的时间间隔,默认值为5000ms
dfs.namenode.resource.du.reserved
数据存储目录所需的最小剩余空间大小,剩余空间小于该值时,进入安全模式。默认值为 104857600字节,即100MB
dfs.namenode.resource.checked.v