hadoop的安全模式

工作流程(理解)

  1. 启动NameNode,NameNode加载fsimage到内存,对内存数据执行edits log日志中的事务操作。
  2. 文件系统元数据内存镜像加载完毕,进行fsimage和edits log日志的合并,并创建新的fsimage文件和一个空的edits log日志文件。
  3. NameNode等待DataNode上传block列表信息,直到副本数满足最小副本条件
  4. 当满足了最小副本条件,再过30秒,NameNode就会退出安全模式。最小副本条件指整个文件系统中有99.9%的block达到了最小副本数(默认值是1,可设置)

在NameNode安全模式(safemode)

  1. 对文件系统元数据进行只读操作
  2. 当文件的所有block信息具备的情况下,对文件进行只读操作
  3. 不允许进行文件修改(写,删除或重命名文件)

注意事项

  1. NameNode不会持久化block位置信息;DataNode保有各自存储的block列表信息。正常操作时,NameNode在内存中有一个block位置的映射信息。
  2. NameNode在安全模式,NameNode需要给DataNode时间来上传block列表信息到NameNode。如果NameNode不等待DataNode上传这些信息的话,则会在DataNode之间进行block的复制,而这在大多数情况下都是非必须的(因为只需要等待DataNode上传就行了),还会造成资源浪费。
  3. 在安全模式NameNode不会要求DataNode复制或删除block。
  4. 新格式化的HDFS不进入安全模式,因为DataNode压根就没有block。

配置信息

以dfs开头的属性均在hdfs-site.xml文件中配置

属性名称

类型

默认值

描述

dfs.namenode.replication.min

hdfs-site.xml

Int

1

写文件成功的最小副本数

dfs.namenode.safemode.threshold-pct

float

0.999

系统中block达到了最小副本数的比例,之后NameNode会退出安全模式。小于等于0表示不进入安全模式,大于1表示永不退出安全模式

dfs.namenode.safemode.extension

int

ms

30000

当副本数达到最小副本条件之后安全模式延续的时间。对于小的集群(几十个节点),可以设置为0

命令操作(了解)

通过命令查看namenode是否处于安全模式:

$ hdfs dfsadmin -safemode get

Safe mode is ON

HDFS的前端webUI页面也可以查看NameNode是否处于安全模式。

有时候我们希望等待安全模式退出,之后进行文件的读写操作,尤其是在脚本中,此时:

$ hdfs dfsadmin -safemode wait

# your read or write command goes here

管理员有权在任何时间让namenode进入或退出安全模式。进入安全模式:

$ hdfs dfsadmin -safemode enter

Safe mode is ON

这样做可以让namenode一直处于安全模式,也可以设置dfs.namenode.safemode.threshold-pct为1做到这一点。

离开安全模式:

$ hdfs dfsadmin -safemode leave

Safe mode is OFF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ErYao7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值