在HDFS集群启动时,NameNode首先进入安全模式,安全模式主要是为了在系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。
集群处于安全模式下,不能执行修改、写入和删除操作,集群一直处于只读模式。
- 将镜像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作,建立系统元数据映像成功后,则创建一个新的fsimage文件和一个空的编辑日志文件。
- NameNode监听DataNode的心跳请求,在此期间NameNode一直处于安全模式。
- 各个DataNode向NameNode发送各自最新的块列表信息,NameNode存储文件和DataNode中块的映射信息。
- NameNode检查“最小副本条件”,整个文件系统的99.9%的块满足最小副本条件,即DataNode上报的block个数达到了元数据记录的block个数的0.999倍才可以离开安全模式。
- “最小副本条件”检查成功,则NameNode在30秒后,退出安全模式。
操作模式操作如下。
- 查看安全模式:hdfs dfsadmin -safemode get
- 进入安全模式:hdfs dfsadmin -safemode enter
- 离开安全模式:hdfs dfsadmin -safemode leave
- 等待安全模式:hdfs dfsadmin -safemode wait

本文详细介绍了HDFS集群启动过程中的安全模式运作机制,包括安全模式的目的、如何进入及退出安全模式,以及NameNode和DataNode之间的交互流程。此外,还提供了HDFS安全模式的相关操作命令。
840

被折叠的 条评论
为什么被折叠?



