第五章 数据中台架构PaaS层离线存储之HDFS的架构演进(图解)

1、分布式文件系统

超级大型电脑=分布式文件系统

在这里插入图片描述

2、HDFS1架构说明

  • 定义:是一个主从式架构主节点只有一个NameNode从节点多个DataNode
    • NameNode:管理元数据信息,主要包括文件与Block块,Block块与DataNode主机的关系
    • DataNode:以文件块形式存储数据(Hadoop1默认64M),每个文件块默认3个副本

在这里插入图片描述

  • 注意事项:NameNode为了快速响应用户的操作请求,所以把元数据加载到内存中

  • HDFS1架构缺陷

    • 单点故障:NameNode发生故障,那整个集群就会无法运行
    • 内存受限:

3、HDFS1单点故障解决方案 - HDFS2架构方案

  • 解决方案:加一台NameNode,但是怎么加且看如下?
3.1、问题1:如何保持两个NameNode元数据一致?
  • 解决方式:JournalNNode集群

在这里插入图片描述

  • 架构原理:采用JournalNNode集群进行元数据管理,JournalNNode集群本身没有单点故障问题
    • NameNode(active):往集群中写入元数据信息
    • Name(standby):读取集群数据
JournalNNode节点:
hadoop<200 3
hadoop>200 5
3.2、问题2:NameNode(active)挂了,如何自动切换到Name(standby)
  • 解决方案:Zookeeper集群

在这里插入图片描述

  • 架构原理:ZKFC负责检测NameNode的心跳,一旦挂掉就会将锁给到备用机

4、HDFS1内存受限解决方案 - HDFS3

  • 解决方案:NameNode采用联邦制,支持多个NameNode。

在这里插入图片描述

  • 架构原理:元数据文件在多组高可用NameNode存储,每组NameNode存储的元数据文件不同

  • 应用场景

    • 服务器<1000台,采取主备策略
    • 服务器>1000台,采用联邦策略

5、HDFS支持亿级流量原理

(1)亿级流量概述

​ NameNode管理了元数据,用户所有操作请求都要操作NameNode,大一点的平台一天运行需要几十万上百万的的任务,一个任务就有很多请求,所有NameNode的请求都打到NameNode这儿(更新目录树),对于NameNode就是亿级数据。

  • 请求类型:创建文件,上传文件,读取文件等
5.1、原理&问题概述

①格式化HDFS,在磁盘上生成fsimage文件

在这里插入图片描述

②启动NameNode,将fsimage文件加载到内存中

在这里插入图片描述

③用户写数据将文件上传到集群,文件元数据信息增加到NameNode内存中,同时将操作会写入磁盘中的edit.log,之后将内存fsimage数据同步到磁盘的fsimage文件上

在这里插入图片描述

  • 问题:内存的读写速度比磁盘要快,磁盘读写性能成为瓶颈
5.2、Editlog写机制之分段加锁&双缓冲机制
  • 业务场景:在HA下,客户端的每一条事务都会首先写入缓冲区,然后近可能马上写入磁盘Editlog和journalNode(保证可靠性),即HDFS应该尽可能保证客户端写的写操作返回成功时,磁盘和JournalNode中Editlog中有该记录。
    在这里插入图片描述
    (1) 因为将记录互斥写入内存,等待时间较短,并且在写磁盘和网络时,不需要持有锁,不影响其他线程的互斥写内存。
    ​ (2)在某线程写磁盘和网络时,其他线程只要判断出其对应的事务已经在被写出了,则可以直接返回。
    ​ (3)两次获取到的锁是同一把锁,都是加在对象(FSEditLog)上的锁。第一次竞争锁为了互斥写缓冲,第二次竞争锁为了交换缓冲。
    ​ (4)通过上述的双缓冲和对线程2阶段加锁,大大提高了性能,并且可以保证返回成功时,该事务已在被写入磁盘和网络;类似于使用一个缓冲区来ack整个缓冲区中的事务,而不是对事务一个接一个ack。
5.3、Checkpoint机制概述
  • 业务场景:NameNode宕机挂掉/重启之后,内存中的fsimage文件消失
    • 重启后:重新加载磁盘中的fsimage文件,合并editlog文件到内存中

在这里插入图片描述

  • SecondNameNode机制:合并NameNode的编辑日志,加快NameNode启动速度
    • 作用:定时拉取NameNode的edit日志,与fsimage进行合并,并将合并编辑的文件传到NameNode上进行文件替换

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘清风殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值