企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**1. 什么是安全模式** NameNode 启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的 fsimage 文件和一个空的编辑日志。此时,NameNode 开始监听DataNode 请求。但是此刻,<mark>NameNode 运行在安全模式,即 NameNode 的文件系统对于客户端来说是只读的</mark>。 <br/> 系统中的数据块的位置并不是由 NameNode 维护的,而是以块列表的形式存储在 DataNode 中。在系统的正常操作期间,NameNode 会在内存中保留所有块位置的映射信息。在安全模式下,各个 DataNode 会向 NameNode 发送最新的块列表信息,NameNode 了解到足够多的块位置信息之后,即可高效运行文件系统。 <br/> <mark>如果满足最小副本条件,NameNode 会在 30 秒钟之后就退出安全模式。</mark> <br/> 所谓的最小副本条件指的是在整个文件系统中 99.9%的块满足最小副本级别(默认值:`dfs.replication.min=1`)。在启动一个刚刚格式化的 HDFS 集群时,因为系统中还没有任何块,所以 NameNode 不会进入安全模式。 <br/> **2. 基本语法** 集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。 ```sql (1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态) (2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态) (3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态) (4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态) ```