集群安全模式
-
概述:
- NameNode启动:
NN启动时,首先将镜像文件(Fsimage)加载进内存,并执行编辑日志(Edits)中的各项操作,一旦内存中建立起文件系统元数据的映像,则创建一个新的Fsimage和一个空的Edits,此时,NN开始监听DN的请求。在这个过程期间,NN一直运行在安全模式中,即文件系统对客户端来说是只读的; - DataNode启动:
系统中数据块的位置并不是NN维护的,而是以块列表的形式存储在DN中,在系统的正常操作期间,NN会在内存中保留所有块位置的映射信息。在安全模式下,各个DN会发给NN最新的块列表信息,当NN接收到足够的块位置信息之后,即可高效运行文件系统; - 安全模式退出判断:
如果满足“最小副本条件”,集群在30秒之后就会退出集群安全模式;最小副本条件是指在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)。在启动一个刚刚格式化的HDFS集群时,因为系统中还没有任何块,所有集群不会进入安全模式。
- NameNode启动:
-
基本语法:
集群处于安全模式时,客户端不能执行重要操作(写操作)。集群启动完成之后,会自动退出安全模式;
①dfsadmin -safemode get (查看安全模式状态)
②dfsadmin -safemode enter (进入安全模式状态)
③dfsadmin -safemode leave (离开安全模式状态)
④dfsadmin -safemode wait (等待安全模式状态)
NameNode多目录配置
- NameNode的本地目录可以配置成多个,而且每个目录存放的内容相同,增加了可靠性
- 具体配置如下:
在hdfs-site.xml文件中添加以下内容:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
</property>