Hadoop中hdfs的架构解析

Hadoop核心组件

     1.分布式存储系统HDFS(Hadoop Distributed File System)分布式存储层
     2.资源管理系统YARN(Yet Another Resource Negotiator)集群资源管理层
     3.分布式计算框架MapReduce分布式计算层

HDFS

     HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)是一个高度容错性的系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,适合那些有着超大数据集(largedata set)的应用程序。

    核心组件

    NameNode 
    DataNode
    SecondaryNameNode(NameNode的快照)

    hdfs体系结构

                 

         

  • HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanode组成。

  • Namenode是一个中心服务器,负责管理文件系统的命名空间和客户端对文件的访问。

  • Namenode执行文件系统的命名空间操作,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射。

  • Datanode负责处理文件系统的读写请求,在Namenode的指挥下进行block的创建、删除和复制

  • 一个文件其实分成一个或多个block,这些block存储在Datanode集合里

     NameNode
        作用:
                1.管理文件系统的命名空间
                2.记录每个文件数据在DateNode上的位置和副本信息
                3.协调客户端对文件的访问
        文件结构
                 
                 version  :是一个properties文件,保存了HDFS的版本号
                 editlog   :任何对文件系统数据产生的操作,都会被保存!
                 fsimage /.md5:文件系统元数据的一个永久性的检查点,包括数据块到文件的映射、文件的属性等
                 seen_txid :非常重要,是存放事务相关信息的文件
  
                 version文件的内容
                 
                 其中,namespaceID是文件系统的唯一标识符,当文件系统第一次被格式化的时候会被创建,这个标识符也要求所有的DataNode节点和NameNode保持一致。  NameNode会使用它识别新的DataNodeDataNode只有在向NameNode注册后才会获取namespaceID                
       NameNode启动过程中fsimage文件处理流程
                 NameNode启动过程中fsimage文件处理流程

第一步:首先加载硬盘上的fsimage文件和edits文件,在内存中merge后将新的fsimage写到磁盘上,这个过程叫checkpoint

      (一般NameNode会配置两个目录来存放fsimageedits文件,分别是本地磁盘和NFS,防止NameNode所在机器的磁盘坏掉后数据丢失。

      NameNode启动时会比较NFS和本地磁盘中的fstime中记载的checkpoint时间加载最新的fsimage。)

      第二步:NameNode加载完fsimage&edits文件后,会将merge后的结果同时写到本地磁盘和NFS此时磁盘上有一份原始的fsimage文件和一份checkpoint文件:fsimage.ckpt。同时edits文件为空。

      第三步:写完checkpoint后,将fsimage.ckpt改名为fsimage(覆盖原有的fsimage),并将最新时间戳写入fstime文件

     
     DataNode
             作用:
                   1.用于数据的存储
                   2.一次写入,多次读取,但是不能修改
                   3.文件是由数据块组成,典型的数据块是128MB
                   4.数据块尽量部署到各个节点上  
            文件结构
                   

             Blk_refixHDFS中的文件数据块,存储的是原始文件内容

             Blk_refix.meta块的元数据文件:包括版本和类型信息的头文件,与一系列块的的区域校验和组成。

             VERSION文本文件,文件的内容为:

            

     其中NamesopaceIDcTimelayoutVersionNameNode保持一致,namespaceID是第一次连接NameNode获得的。storageType对于DataNode来说是唯一的,用于NameNode表示DataNode

          DataNode启动过程

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

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

           Namenodeblock ->datanodes list的对应表信息保存在BlocksMap(如图所示)中

    
           学习自:http://blog.csdn.net/qq_27376871/article/details/52562401
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值