实验目的:
实验一:验证NameNode启动时确实会进入安全模式,检查数据块的完整性,如果数据块是完整的,会退出安全模式,正常响应读写请求
实验二:验证NameNode启动时确实会进入安全模式,如果未达到配置文件规定个数的DataNode启动,会一直处于安全模式,直到达到规定个数的DataNode都启动后,才会退出安全模式
实验三:验证在NameNode进程运行过程中,如果突然出现了datanode进程挂掉或数据块不完整,是否能重新进入安全模式?
试验环境:
3个节点组成的简单分布式集群,1个NameNode,2个DataNode
修改配置:
在master主机的配置文件hdfs-site.xml中增加以下参数:
文件路径是/usr/local/hadoop-2.6.0-cdh5.7.0/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.safemode.min.datanodes </name>
<value>2</value>
</property>
参数含义:dfs.namenode.safemode.min.datanodes:表示离开安全模式的最小可用 datanode 数量要求,默认为 0,即使所有 datanode 都不可用,仍然可以离开安全模式,因此设置为2,必须两个datanode可用才退出安全模式
实验步骤:
实验一:
1)先不启动hdfs集群(如果hdfs已经启动,执行stop-dfs.sh停止集群),在master和slave1,slave2,运行查看安全模式命令hadoop dfsadmin -safemode get,出现结果都是: