Hadoop3:HDFS-集群安全模式

07-17 785阅读

一、基本介绍

1、安全模式

文件系统只接受读数据请求,而不接受删除、修改等变更请求

2、 二、进入安全模式场景

1、NameNode在加载镜像文件和编辑日志期间处于安全模式(就是启动集群的时候);

2、NameNode再接收DataNode注册时,处于安全模式

3、退出安全模式条件

hdfs-default.xml

dfs.namenode.safemode.min.datanodes:最小可用datanode数量,默认0

dfs.namenode.safemode.threshold-pct:副本数达到最小要求的block占系统总block数的百分比,默认0.999f。(只允许丢一个块)

dfs.namenode.safemode.extension:稳定时间,默认值30000毫秒,即30秒

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	(功能描述:等待安全模式状态)

二、案例

1、磁盘修复案例

模拟数据块损坏

删除三个磁盘上的同一份文件的数据块

rm -rf blk_1073741825 blk_1073741825_1001.meta blk_1073741845 blk_1073741845_1021.meta

Hadoop3:HDFS-集群安全模式

重启集群

myhadoop stop
myhadoop start

查看页面

总共23个数据库,现在就21个,所以,进入安全模式。

Hadoop3:HDFS-集群安全模式

处理办法

1、临时处理

使用命令退出安全模式

hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode leave

Hadoop3:HDFS-集群安全模式

查看页面

Hadoop3:HDFS-集群安全模式

安全模式已经关闭,但是,页面顶部出现了其他告警信息

现在,可以从页面进行删除数据了。

但是,下次启动,还是会进入安全模式。

2、彻底解决

找专业团队,进行数据修复,但是,一般这种方法是针对非常重要的数据进行,因为要花钱。

另外一个办法

就是根据提示信息,把元数据删除。

Hadoop3:HDFS-集群安全模式Hadoop3:HDFS-集群安全模式

再次重启,就不会停留在安全模式了。

Hadoop3:HDFS-集群安全模式

2、利用安全模式等待执行

应用场景:

有些公司,会在月底进行一些订单核算业务。

这个时候,不允许有人操作集群。

那么,我们可以使用命令,进入安全模式即可。

但是,同时我们还有其他业务脚本需要执行,怎么办?

无需人员等待

我们,写一个阻塞脚本,当退出安全模式的时候,即刻执行脚本。

查看安全模式,并进入安全模式

hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode enter

Hadoop3:HDFS-集群安全模式

测试脚本

等待安全模式退出时,上传一份文件到集群

#!/bin/bash
hdfs dfsadmin -safemode wait
hdfs dfs -put /opt/module/hadoop-3.1.3/README.txt /

执行脚本

脚本进入堵塞状态

Hadoop3:HDFS-集群安全模式

退出安全模式,观察脚本情况

会发现,安全模式退出时,立即执行脚本逻辑。

hdfs dfsadmin -safemode leave

Hadoop3:HDFS-集群安全模式Hadoop3:HDFS-集群安全模式

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]