初始HDFS

HDFS的体系结构


HDFS是一个分布式存储系统

HDFS的核心

         NameNode 
         DataNode
         SecondaryNameNode(NameNode的快照)

HDFS是一个主从结构,一个HDFS集群由一个名字节点(NameNode)和多个数据节点(DataNode)组成

HDFS的优点

1.高容错性  2.海量数据的存储  3.文件分块存储 4.移动计算  5.流式数据访问  6.可构建在廉价的机器上

HDFS的核心组件

namenode           

  01.Namenode执行文件系统的命名空间操作,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射
  02.协调客户端对文件的访问
  03.记录每个文件数据在各个DataNode上的位置和副本信息

文件结构解析

      fsimage二进制文件,存储HDFS文件和目录元数据

      Edits二进制文件,每次保存fsimage之后到下次保存之间的所有HDFS操作,记录在Edit s文件。对文件的每一次操作,如打开、关闭、重命名文件和目录,都会生成一个edit记录。

      fstime:二进制文件,fsimage做完一次checkpoint后,将最新的时间戳写入到fstime

      VERSION文本文件,文件的内容为(图示引用书籍:Hadoop实战)


      其中,namespaceID是文件系统的唯一标识符,当文件系统第一次被格式化的时候会被创建,这个标识符也要求所有的DataNode节点和NameNode保持一致。  NameNode会使用它识别新的DataNodeDataNode只有在向NameNode注册后才会获取namespaceID


DataNode    

DataNode的作用

保存block

启动DataNode线程的时候会向NameNode汇报block信息

通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并copy其上的block到其它DataNode


datanode启动时,每个datanode对本地磁盘进行扫描,将本datanode上保存的block信息汇报给namenode

namenode在接收到每个datanode的块信息汇报后,将接收到的块信息,以及其所在的datanode信息等保存在内存中。

 Secondary NameNode      
作用
      01.Namenode的一个快照,周期性的备份Namenode   时间差  3000分钟
      02.记录Namenode中的metadata及其它数据
      03.可以用来恢复Namenode,并不能替代NameNode!

      第一步:Secondary NameNode首先请求NameNode进行edits的滚动,这样NameNode开始重新写一个新的edit log

      第二步:Secondary NameNode通过HTTP方式读取NameNode中的fsimageedits

      第三步:Secondary NameNode读取fsimage到内存中,然后执行edits中的每个操作,并创建一个新的统一的fsimage文件。

      第四步:Secondary NameNode通过HTTP方式将新的fsimage发送到NameNode

      第五步:NameNode用新的fsimage替换旧的fsimage,旧的edits文件用步骤1中的edits进行替换,同时系统会更新fsimage文件记录检查点时间




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值