######基础概念#######
当hadoop的datanode节点启动时,会进入安全模式阶段。在此阶段,datanode会向namenode上传它们的数据块列表,让namenode得到块的位置信息,并对每个文件对应的数据块的副本进行统计。当最小副本条件满足时,系统就会退出安全模式。当最小副本数未达到一定条件时,系统会自动对副本数不足的数据块进行datanode复制,直至达到最小副本数,而在安全模式下,系统会处于只读状态,namenode不会处理任何数据块的删除和修改命令。
######安全模式结束条件#######
HDFS的Namenode等待DataNode向其发送块报告,当NameNode统计总模块和发送过来的块报告中的统计信息达到99.999%的时候,表示不存在块的丢失,此时安全模式才会退出。安全模式已开启。报告的块0需要额外的9个块才能达到块总数的0.9990。活动数据块0的数量已达到最小数0。一旦达到阈值(99.9999%),安全模式将自动关闭。
NameNode完成一定比例的数据检查再过30s,NameNode会自动退出安全模式。可在配置文件中进行配置。
dfs.safemode.threshold.pct | 指定退出条件,需要达到最小副本数数据块的比例,默认是0.999 |
dfs.safemode.extension | 系统退出安全模式时需要的延迟时间 |
######安全模式的管理#######
查看安全模式:bin/hdfs dfsadmin -safemode get
解除安全模式:bin/hdfs dfsadmin -safemode leave