集群安全模式

1.概述

》1:什么是集群安全模式?

集群安全模式是NameNode启动时的特殊运行模式。

》2:有什么特点?

当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除(只读),直到安全模式结束

在安全模式下,各个DataNode会向NameNode发送最新的块列表信息,NameNode了解到足够多的块位置信息之后,即可高效运行文件系

》3:为什么要有运行模式

安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块

》4:什么时候退出安全模式

如果满足"最小副本条件",NameNode会在30秒钟之后就退出安全模式

最小副本条件指的是在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)

2.基本语法

集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。

(1)hdfs dfsadmin -safemode get        (功能描述:查看安全模式状态)
(2)hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)
(3)hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)
(4)hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)

3. 案例

模拟等待安全模式
(1)查看当前模式

 hdfs dfsadmin -safemode get

Safe mode is OFF
(2)先进入安全模式

hdfs dfsadmin -safemode enter

(3)创建并执行下面的脚本

在/opt/module/hadoop-2.7.2路径上,编辑一个脚本safemode.sh

 vim safemode.sh

内容如下

hdfs dfsadmin -safemode wait
hdfs dfs -mkdir -p /user/dev2/input

再赋上执行权限

 chmod 777 safemode.sh
./safemode.sh

wait指令 设置当前程序一直等待,直到离开安全模式才执行后续程序
(4)再打开一个窗口,执行

hdfs dfsadmin -safemode leave

(5)观察
(a)再观察上一个窗口
Safe mode is OFF
(b)HDFS集群上已经有上传的数据了。