HDFS的安全模式

一、什么是安全模式

安全模式是NameNode的一种状态,处于安全模式的NameNode不接受任何对于命名空间的修改操作(但是可以接受读请求),同时也不会触发任何复制和删除数据块的操作

二、为什么要有安全模式

NameNode在启动的时候首先会加载命名空间镜像(fsimage)并且合并编辑日志(editlog),完成这些操作后NameNode的文件系统目录树就构建完成了;之后NameNode会接受来自DataNode的块汇报(blockReport),来获取数据块的相关信息,用来构建数据块与存储这个数据块副本的DataNode的对应关系。这些操作都是在安全模式下进行的,只有当NameNode收集到的满足最低副本系数(一个数据块应该拥有的最少的副本数量)的数据块数量与HDFS中所有的数据块的比例满足阈值比例时才可以离开安全模式,但是此时并不会立刻退出安全模式,而会在延迟一段时间(默认30秒)之后才退出安全模式。延迟一段时间的目的是为了等待那些还没有进行块汇报的数据节点进行块汇报。

最低副本系数
dfs.namenode.replication.min 参数设置  默认是 1
阈值比例
dfs.safemode.threshold.pct  参数设置  默认是 0.999
延迟时间
dfs.safamode.extension  参数设置   默认是30秒

threshold = 0 NameNode 不会进入安全模式
threshold = 1 NameNode需要等待所有的数据块都上报之后才能退出
threshold > 1 NameNode无法自动退出安全模式

在启动一个刚刚格式化的NameNode时,不会进入安全模式,因为此时还没有数据块

任何时候都可以通过手动的方式退出安全模式

如果是手动进入安全模式的,那么namenode不会自动退出安全模式,也必须手动退出

三、与安全模式相关的命令

[hadoop@bigdata ~]$ hdfs dfsadmin -safemode
Usage: hdfs dfsadmin [-safemode enter | leave | get | wait]

# 手动进入安全模式
hdfs dfsadmin -safemode enter
# 手动离开安全模式
hdfs dfsadmin -safemode leave
# 查看安全模式的状态
hdfs dfsadmin -safemode get
# 等待一直到安全模式结束
hdfs dfsadmin -safemode wait

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值