写在前面:
补充
进入主题:
- 集群启动时的一个状态
- 安全模式是HDFS的一种工作状态,处于安全模式的状态下,只向客户端提供文件的只读视图,不接受对命名空间的修改;同时NameNode节点也不会进行数据块的复制或者删除
- NameNode启动时
- 首先将镜像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。
- 一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。
- NameNode开始监听RPC和Http请求。
- 此时NameNode处于安全模式,只接受客户端的读请求。
- 系统中的数据块的位置并不是由NameNode维护的,而是以块列表的形式存储在DataNode中。
- 安全模式下
- 安全模式下,各个DataNode会向NameNode发送自身的数据块列表
- 当NameNode有足够的数据块信息后,便在30秒后退出安全模式
- NameNode发现数据节点过少会启动数据块复制过程
- 如果NN收集的Block信息没有达到最少副本数,就会将缺失的副本,从有的DN上拷贝到其他DN
- dfs.replication.min=2
- 但是默认最低副本数为1
- 在拷贝的过程中系统还是处于安全模式
- 安全模式相关命令
-
hadoop dfsadmin -safemode leave 强制NameNode退出安全模式 hadoop dfsadmin -safemode enter 进入安全模式 hadoop dfsadmin -safemode get查看安全模式状态 hadoop dfsadmin -safemode wait 等待一直到安全模式结束
-
完毕。