码迷,mamicode.com
首页 > 其他好文 > 详细

HDFS安全模式

时间:2018-07-13 23:21:50      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:也会   设置   class   设定   nod   机制   节点   单位   获取   

安全模式概述

  安全模式是 HDFS 所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求,是一种保护机制,用于保证集群中的数据块的安全性。

  在NameNode主节点启动时,HDFS首先进入安全模式,集群会开始检查数据块的完整性。DataNode 在启动的时候会向 namenode 汇报可用的 block 信息,当整个系统达到安全标准时,HDFS 自动离开安全模式。

  假设我们设置的副本数(即参数 dfs.replication)是 5,那么在 Datanode 上就应该有5 个副本存在,假设只存在 3 个副本,那么比例就是 3/5=0.6。在配置文件 hdfs-default.xml中定义了一个最小的副本的副本率(即参数 dfs.namenode.safemode.threshold-pct)0.999

  我们的副本率 0.6 明显小于 0.99,因此系统会自动的复制副本到其他的 DataNode,使得副本率不小于 0.999.如果系统中有 8 个副本,超过我们设定的 5 个副本,那么系统也会删除多余的 3 个副本。

  如果 HDFS 处于安全模式下, 不允许HDFS 客户端进行任何修改文件的操作,包括上传文件,删除文件,重命名,创建文件夹,修改副本数等操作。

 

安全模式配置

 

  与安全模式相关主要配置在 hdfs-site.xml 文件中,主要有下面几个属性:

  dfs.namenode.replication.min: 每个数据块最小副本数量,默认为 1. 在上传文件时,达到最小副本数,就认为上传是成功的。

  dfs.namenode.safemode.threshold-pct: 达到最小副本数的数据块的百分比。默认为0.999f。当小于这个比例,那就将系统切换成安全模式,对数据块进行复制;当大于该比例时,就离开安全模式,说明系统有足够的数据块副本数,可以对外提供服务。小于等于 0 意味不进入安全模式,大于 1 意味一直处于安全模式。

  dfs.namenode.safemode.min.datanodes: 离开安全模式的最小可用 datanode 数量要求,默认为 0.也就是即使所有 datanode 都不可用,仍然可以离开安全模式。

  dfs.namenode.safemode.extension: 当集群可用 block 比例,可用 datanode 都达到要求之后,如果在 extension 配置的时间段之后依然能满足要求,此时集群才离开安全模式。单位为毫秒,默认为 30000.也就是当满足条件并且能够维持 30 秒之后,离开安全模式。这个配置主要是对集群稳定程度做进一步的确认。避免达到要求后马上又不符合安全标准。

  总结一下,要离开安全模式,需要满足以下条件:

    1)达到副本数量要求的 block 比例满足要求;

    2)可用的 datanode 节点数满足配置的数量要求;

    3) 1、2 两个条件满足后维持的时间达到配置的要求

 

安全模式命令

  手动进入安全模式

hdfs dfsadmin -safemode enter

 

  手动进入安全模式对于集群维护或者升级的时候非常有用,因为这时候 HDFS 上的数据是只读的。手动退出安全模式可以用下面命令:

hdfs dfsadmin -safemode leave

 

  如果你想获取到集群是否处于安全模式,可以用下面的命令获取:

hdfs dfsadmin -safemode get(也可在 web 页面查看安全模式状态)

 

HDFS安全模式

标签:也会   设置   class   设定   nod   机制   节点   单位   获取   

原文地址:https://www.cnblogs.com/jifengblog/p/9307825.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!