HDFS基本架构总结

目录

  • HDFS架构
  • Namenode&DataNode&SecondaryNameNode
  • 副本存放策略

图片来自hadoop官网
HDFS为主/从架构,主要由管理文件系统的NameNode和存储数据的DataNode组成。


NameNode介绍及作用 :
  • NameNode维护以下内容

    a. 管理文件名称
    b. 管理文件目录结构
    c. 管理文件属性(创建时间、权限、副本数等)
    d. 文件对应哪些数据块 => 数据块对应分布到哪些DataNode节点上,NameNode不会持久化存储这种映射关系,集群在启动和运行时,DataNode会定期发送blockreport给NameNode,从而NameNode在内存中动态维护这种映射关系

  • 作用
    a. 管理文件系统的命名空间
    b. 维护文件系统树,以两种文件永久保存在磁盘
    c. 命名空间镜像文件fsimage
    d. 编辑日志editlog

DataNode介绍及作用:
  • 主要是用来对文件数据块的读写。存储数据块和块的校验,因为数据在网络的传输中可能存在数据丢失的问题,所以需要校验。同时,DataNode要保持与NameNode的通信,一般每3秒发送一次heartbeat包,每10次heartbeat(30秒)发送一次bloackreport给Namenode。
SecondaryNameNode:
  • 存储fsimage和editlog
  • 定期合并fsimage和editlog生成新的fsimage文件并返回给NameNode,也就是checkpoint.周期默认为3600秒,一般生成上为1200秒或者更少。
  • fsimage:镜像文件,记录文件系统目录树,是全量记录。
  • editlog: 编辑日志,记录所有的读写操作,是增量记录。
  • SecondaryNameNode通信NameNode准备提交editlog,此时NameNode开始产生edit.new,SecondaryNameNode获得之前得fsimage和editlog后合并产生一个fsimage.ckpt(同时也备份了fsimage和editlog),同时把这个fsunage.ckpt返回给NameNode,然后NameNode获得fsimage.ckpt之后将fsimage.ckpt和edits.new重命名为fsimage何editlog
  • 当NameNode挂掉的时候,SecondaryNameNode代替NameNode时将会丢失最近一个checkpoint到现在的editing,但会还原最近一个checkpoint生产的fsimage.
    SNN合并流程

副本存放策略

一般来说,数据是以block存储在DataNode节点上。假如说,在DataNode节点上提交文件,那么第一个块就是存储在这个节点上(选择最近的一个),如果不是在DataNode节点上提交的,就随即挑选一个磁盘合适CPU负荷的节点。第二个block存储在不同机架上的一个节点,而第三个block存储在与第二个block相同机架上的不同节点(假设副本数为3)。
副本存放策略


部分图片与内容引用自官网:
https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值