初始HDFS

HDFS的体系结构

初始HDFS_第1张图片

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实战)

初始HDFS_第2张图片

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


DataNode    

DataNode的作用

保存block

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

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

初始HDFS_第3张图片

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文件记录检查点时间




你可能感兴趣的:(初始HDFS)