SencondaryNamenode介绍

SencondaryNamenode作用

sencondaryNamenode :将Namenode(主节点的)中的mateData元数据 edits.log 和fsimage的文件合并,并写入到磁盘中,为保证数据的安全------持久化操作备注:secodarynode永远无法代替Namenode,他只是Namenode的一个热备
*Secondary NameNode


定时与NameNode进行同步(定期合并文件系统镜像和编辑日志,然后把合并后的传给NameNode,替换其镜像,并清空编辑日志,类似于CheckPoint机制),但NameNode失效后仍需要手工将其设置成主机


持久化

当我们的集群因断电等特殊原因产生问题的时候,问题解决,重新开机,回去磁盘上读取元数据,恢复到电脑断电之前的状态

触发条件:
      1. 时间超过3600秒
      2. edits.log大小超过64MB 

SencondaryNamenode介绍_第1张图片

在持久化合并的时候,edits又超过64Mb?

      1.  个别现象 另外在启动一个edits Namenode中会存在两个edits 分别进行合并
      2. 如果是常态的话 需要调整edits.log 的触发条件的大小

Namenode 与 Datanode 中的通讯机制


Namenode 与 Datanode 中的通讯机制是心跳机制(每间隔3S,Datanode会向Namenode发送一情况(心跳),如果一分钟没有发送,则Namenode就会认为Datanode挂掉

安全模式

  1. 回复系统状态
  2. 检查Datanode的信息
  3. 有问题的Datanode进行修复
        <1>数据传输中断电   ---- 数据会丢失  如果数据特别重要就绪要预判持久化预判条件
        <2>传输完成之后断电 --集群重新回复之后,Namenode回去读取元数据,对状态进行相应的回复
        <3>若Datanode出现问题---在Datanode回复之后,如果有新的任务,确认是将新的文件上传
        [==========Namenode========]
             block1/   |    \
              DN1    DN2     DN3
      当文件上传block的时候 DN3挂掉 当前任务不会上传,当DN3恢复之后.相当于一个新的节点,有新的任务的实惠才会写到DN3上
      当要计算DN3上挂掉之前的数据时,回去找DN1和DN2    

总结


持久化就是将Namenode的元数据写入到磁盘中,当Namenode挂了之后,重启的时候回去磁盘中去取响应的元数据,恢复集群的状态

你可能感兴趣的:(SencondaryNamenode介绍)