Hadoop3:HDFS-集群安全模式

一、基本介绍

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、常用命令

bash 复制代码
(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、磁盘修复案例

模拟数据块损坏

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

bash 复制代码
rm -rf blk_1073741825 blk_1073741825_1001.meta blk_1073741845 blk_1073741845_1021.meta

重启集群

bash 复制代码
myhadoop stop
myhadoop start

查看页面

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

处理办法

1、临时处理

使用命令退出安全模式

bash 复制代码
hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode leave

查看页面

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

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

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

2、彻底解决

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

另外一个办法

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

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

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

应用场景:

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

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

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

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

无需人员等待

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

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

bash 复制代码
hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode enter

测试脚本

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

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

执行脚本

脚本进入堵塞状态

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

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

bash 复制代码
hdfs dfsadmin -safemode leave

相关推荐
黑客KKKing24 分钟前
网络安全——常用语及linux系统
安全·web安全·php
我要用代码向我喜欢的女孩表白29 分钟前
hadoop3.3和hive4.0安装——单节点
hive·hadoop·hdfs·搭建
然然阿然然36 分钟前
2025.1.15——假期回归训练,从sql注入开始|一、SQL整数型注入
sql·学习·安全·web安全·网络安全
hao_wujing2 小时前
网络安全测评质量管理与标准解读
安全·web安全
黑客Ash5 小时前
网络安全概述
安全·web安全
好记性+烂笔头10 小时前
hive知识体系
数据仓库·hive·hadoop
NoneCoder11 小时前
JavaScript系列(26)--安全编程实践详解
开发语言·javascript·安全
jinan88612 小时前
出差人员携带的电脑文件信息安全如何保障?
大数据·运维·服务器·网络·安全·电脑
DX_水位流量监测13 小时前
雷达流量监测系统:精准监控水流,确保水资源安全
大数据·开发语言·网络·人工智能·安全·信息可视化