11张图了解HDFS的架构设计

本文详细介绍了HDFS(Hadoop分布式文件系统)的架构设计,包括其设计理念、支持大规模数据集、硬件错误处理、流式数据处理、简化的数据一致性模型、NameNode与DataNode的角色以及高可用机制。通过分析HDFS的元数据管理和容错机制,揭示了HDFS如何实现高吞吐量和高容错性的存储。此外,还探讨了HDFS的副本机制、机架感知和安全模式,展示了其在大数据处理中的关键作用。
摘要由CSDN通过智能技术生成

HDFS 介绍

HDFS 是一个适合部署在廉价机器上的,具有高度容错性的,高吞吐量的分布式文件系统。

HDFS 的设计理念

支持超大规模数据集

运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被设计成支持大文件存储,能在一个集群里扩展到数百个节点,能够存储海量的数据。

比如说,某个表 100亿条数据,你还用MySQL 去存么?一台机器你的配置得多高才行,再考虑一下查询的效率。如果用了分布式存储之后,也就是说,这些数据放到N多台机器里面去存储,每个机器只存储这个100亿数据的中的一部分,比如一台机器存 500万数据,HDFS 的定位就是针对这种超大的数据集存储的。

硬件错误

HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。而存储这些数据的机器出现故障的几率还是蛮高的,比如磁盘损坏,不能读写,网络故障等原因就会导致这台机器不能正常工作了。

因此错误检测和快速、自动恢复是HDFS最核心的架构目标,一旦HDFS 检测到集群中的某台机器出现问题,然后可以对故障进行恢复。

流式数据处理

运行在HDFS 上面的应用和咱们平常写的这些普通应用不同,HDFS 读写文件系统上的数据的时候,是基于一种流的概念来读的,所谓的流式处理,就是批量对文件进行读写,保证高吞吐量的文件读写,不是低延迟的文件读写。

HDFS 是应用在离线批处理场景上面的,尤其是现在的离线数据仓库,用来做数据分析的,我们现在的离线分析,都是今天凌晨去把源系统的数据抽过来放到HDFS 里头,然后处理,都是一批一批地去处理这个数据,不是来一条就计算一条。

简化的数据一致性模型

同时支持对文件的读和写,需要处理大量的并发冲突问题,想想平常大家在写代码的时候对有读,有写的集合这些加的读写锁,不加会出N多问题。 HDFS 这种大规模数据集的分布式存储,它的模型必须得去简化,它的文件只能一次写入,之后是只能去追加,不能随便修改之前的数据。

所以它的理念就是 :write-once,ready-many-times,一次写,然后多次读,这样就没有数据读写并发冲突,以及数据如何维护一致性的问题了。

这种一次写,多次读的模型,也能大大提升HDFS 的吞吐量。

移动计算,不要移动数据

大家想想,咱们在读取数据的时候,是从本地磁盘读取数据快,还是从网络中的其他机器上读取数据快?是不是数据越靠近这个机器,速度越快,效率越高。

所以说,在分布在多台机器上的数据,进行分布式的计算,需要让你的计算任务更靠近这些数据,而不是在集群里面通过网络到处去传输数据。

master-slave 模式的分布式架构

NameNode 和 DataNode

分布式系统中比较经典的架构是master-slave ,HDFS 就是采用的这种master-slave 架构,一个HDFS 集群是由一个NameNode 和多个DataNode 组成的。

NameNode 是一个进程,JVM 进程,也是一个系统,我们可以认为 NameNode 就是这个master (可以理解成一个大管家),在一个普通的HDFS 集群里面,NameNode 只有一个。它负责管理文件系统命名空间(filesystem namespace)以及客户端对文件的访问。

DataNode 也是一个进程,集群中的每台机器上都有一个DataNode 进程,它主要负责本机上的数据的存储。

文件系统命名空间 Filesystem Namespace

命名空间,怎么理解?就从我们的电脑的文件夹来说,存放的数据都是按照这种目录-> 文件的方式,目录下面可能又是下一层目录。

比如下面的我电脑上的目录结构 ,/文稿/数仓/ 这个目录下面有文件 数仓建设方法xxx.doc 和 目录 /12_资料 ,目录 /12_资料 下面有 04_大数据体系技术结构xxx.doc 这些文档。

所以说,这套文件系统的目录的层级结构和文件的对应关系,就是所谓的 Filesystem Namspace ,这套东西存放在 NameNode 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值