4.1. safe mode
➢ 分析
当收到来自 datanode 的状态报告后,namenode 根据配置,确定
- 可用的 block 占总数的比例。
- 可用的数据节点数量符合要求之后,离开安全模式。
➢ 解答
如果有必要,也可以通过命令强制离开安全模式:hadoop dfsadmin -safemode leave
与安全模式相关的主要配置在 hdfs-site.xml 中,主要有下面几个属性: - dfs.namenode.replication.min: 最小的文件 block 副本数量,默认为 1。
- dfs.namenode.safemode.threshold-pct: 副本数达到最小要求的 block 占系统总 block 数的百分比,当实际比例超过该配置后,才能离开安全模式(但是还需要其他条件也满足)。默认为 0.999f,也就是说符合最小副本数要求的 block 占比超过 99.9% 时,并且其他条件也满足才能离开安全模式。如果为小于等于 0,则不会等待任何副本达到要求即可离开。如果大于 1,则永远处于安全模式。
- dfs.namenode.safemode.min.datanodes: 离开安全模式的最小可用 datanode 数量要求,默认为 0.也就是即使所有 datanode 都不可用,仍然可以离开安全模式。
- dfs.namenode.safemode.extension: 当集群可用 block 比例,可用 datanode 都达到要求之后,如果在 extension 配置的时间段之后依然能满足要求,此时集群才离开安全模式。单位为毫秒,默认为 1.。这个配置主要是对集群的稳定程度做进一步的确认,避免达到要求后马上又不符合安全标准。