【图文跟进 】HADOOP 核心设计——安全模式

集群的安全模式是集群的一个自我保护的一种模式,在集群的安全模式下
不允许用户对集群进行部分操作的。


集群什么时候会进入安全模式:
1)集群启动的时候,集群会自己进入安全模式


集群启动过程中做的事情?
    启动顺序:
        1)namenode   2)datanode   3)secondarynamenode
    启动namenode的时候做的事情:
        namenode主要作用:存储元数据
        元数据:1)抽象目录树  2)数据和块的映射   3)数据块和节点的映射
        元数据存储的位置:
        1)硬盘上存储   /home/hadoop/data/hadoopdata/name/current
            硬盘中的元数据包含:1)   2)
            没有3)
        2)内存中  全部的元数据
        集群正常启动之后  读取的元数据信息都是内存中的
        包含:1)   2)   3)
        
        集群再启动namenode的时候:
            1)将硬盘中的元数据加载到内存中
            元数据信息:
                hadoop-2.7.6.tar.gz   206M   
                1)/hadoop-2.7.6.tar.gz
                2)hadoop-2.7.6.tar.gz:blk_12334:[]    blk_12335:[] 
    启动datanode:
        1)启动datanode的进程
        2)启动完成向namenode进行发送心跳报告
        3)datanode在发送心跳报告的时候也会发送块报告
        namenode接受到这个块报告信息就会将相应的块id的节点放在
        元数据的相应位置
        hadoop-2.7.6.tar.gz:blk_12334:[hadoop01,hadoop02]    
                            blk_12335:[hadoop02,hadoop03]
    启动secondarynamenode
集群再整个启动过程中处于安全模式的,进行一系列的检查,符合
标准的时候,才会离开安全模式:
    1)检查每一个数据块的副本个数,每一个数据块的副本个数至少为1
   
    2)检查合乎标准的数据块占总数据块的比例 

    
    假设集群中的总的数据块的id:1000个
    达到副本个数>=1的数据块的id:999      达标的数据块的比例999/1000=0.999
    达到副本个数>=1的数据块的id:998    比例:0.998
    3)检查存活的datanode个数

    至少保证0个datanode存活的
    4)整个符合上面的标准的状态持续30s之后  
    
    保证集群的稳定性
集群启动过程中,为什么进入安全模式:
    1)namenode将硬盘中的元数据加载到内存中
    2)namenode接受datanode的心跳报告
    3)namenode接受datanode的块报告
    4)namenode会进行一系列的检查
基于以上的原因  集群会进入安全模式  上面的事情都完成的情况下
集群会自动退出安全模式

2)集群运行过程中,也会进行检查
    1)检查每一个数据块的副本个数,每一个数据块的副本个数至少为1
    <property>
      <name>dfs.namenode.replication.min</name>
      <value>1</value>
      <description>Minimal block replication. 
      </description>
    </property>
    2)检查合乎标准的数据块占总数据块的比例 

    <property>
      <name>dfs.namenode.safemode.threshold-pct</name>
      <value>0.999f</value>
      <description>
        Specifies the percentage of blocks that should satisfy 
        the minimal replication requirement defined by dfs.namenode.replication.min.
        Values less than or equal to 0 mean not to wait for any particular
        percentage of blocks before exiting safemode.
        Values greater than 1 will make safe mode permanent.
      </description>
    </property>
    假设集群中的总的数据块的id:1000个
    达到副本个数>=1的数据块的id:999      达标的数据块的比例999/1000=0.999
    达到副本个数>=1的数据块的id:998    比例:0.998
检查的时候发现不符合要求了  也会自动进入安全模式


如果集群处于维护或者是系统升级的时候,也可以手动进入安全模式:
命令:


    hdfs dfsadmin -safemode get  获取当前集群的安全模式状态
        Safe mode is OFF  离开了安全模式
        Safe mode is ON  在安全模式
    hdfs dfsadmin -safemode leave  强制离开安全模式
    hdfs dfsadmin -safemode enter  强制进入安全模式
    hdfs dfsadmin -safemode wait   等待安全模式自行离开  没有意义
    
在安全模式下,可以执行的操作,和不可以执行的操作:
    可以执行的操作:
        ls
        get
        cat
        tail
    不可以执行的操作:
        -put
        -mkdir
        -touchz
        -appendToFile
        -rm 
    查询可以  不修改元数据信息的
    增删改不可以   修改了元数据
安全模式自我保护的模式  在这个模式下不允许用户修改任何元数据的
只能查询元数据

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值