1.进入安全模式的情况
集群启动时必定会进入安全模式:
1.NameNode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中
的各项操作.一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件
和一个空的编辑日志.此时,NameNode开始监听DataNode请求.但是此刻,NameNode
运行在安全模式,即NameNode的文件系统对于客户端来说是只读的。
2.系统中的数据块的位置并不是由NameNode维护的,而是以块列表的形式存储在
DataNode中。在系统的正常操作期间,NameNode会在内存中保留所有块位置的映射信息。
3.在安全模式下,各个DataNode会向NameNode发送最新的块列表信息,NameNode了解到
足够多的块位置信息之后,即可高效运行文件系统。
2以下情况不会进入到安全模式
4.如果满足“最小副本条件”,NameNode 会在30秒钟之后就退出安全模式。所谓的最
小副本条件指的是在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)。
5.在启动一个刚刚格式化的HDFS集群时,因为系统中还没有任何块,所以NameNode不会进入安全模式。
2.异常情况下导致的安全模式
原因: block 确实有缺失,当namenode发现集群中的block丢失数量达到一个阀值时,
namenode就进入安全模式状态,不再接受客户端的数据更新请求。
[解决办法]
(1)调低阀值.
hdfs-site.xml中:
dfs.namenode.safemode.threshold-pct
0.999f
(2)强制离开。
hdfs dfsadmin -safemode leave
(3)重新格式化集群。
(4)修复损坏的块文件。
[基本语法]
集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。
(1) bin/hdfs dfsadmin -safemode get (功能:查看安全模式状态)
(2) bin/hdfs dfsadmin -safemode enter (功能:进入安全模式状态)
(3) bin/hdfs dfsadmin -safemode leave (功能:离开安全模式状态)
(4) bin/hdfs dfsadmin -safemode wait (功能:等待安全模式状态)
*HDFS集群安全模式的作用?什么情况下会进入到安全模式?安全模式的解决办法?
最新推荐文章于 2024-08-01 11:58:45 发布