当 Hadoop的NameNode节点启动时,会进入安全模式阶段。安全模式是HDFS的一种工作状态,处于安全模式的状态下,只为客户端提供文件的只读视图,不接受对命名空间的修改;同时名字节点也不会进行数据块的复制或者删除。
Namenode启动时,首先将fsimage载入内存,并执行编辑日志中的操作。一旦文件系统元数据建立成功,便会创建一个空的编辑日志。此时namenode开始监听RPC和Http请求。但是此时namenode处于安全模式,只能接受客户端的读请求。
在安全模式下,DataNode会向NameNode上传它们数据块的列表,让 NameNode得到块的位置信息,并对每个文件对应的数据块副本进行统计。当最小副本条件满足时,默认是95%的数据块有一个副本的位置信息,系统就会默认30秒后退出安全模式。当最小副本条件未达到要求时,就会对副本数不足的数据块安排DataNode进行复制,直至达到最小副本数。而在安全模式下,系统会处于只读状态,NameNode不会处理任何块的复制和删除命令。
在启动一个刚刚格式化的HDFS时不会进入安全模式,因为没有数据块。
可以通过dfsadmin的safemode选项,来对安全模式进行操作:
(1)查看名字节点是否处于安全模式:
%Hadoop dfsadmin -safemode get
(2)等待名字节点离开安全模式
%Hadoop dfsadmin -safemode wait
(3)进入安全模式
%Hadoop dfsadmin -safemode enter
(4)离开安全模式
%Hadoop dfsadmin -safemode leave
HDFS的安全模式
最新推荐文章于 2023-10-18 23:32:16 发布