HDFS 是如何实现大数据高容量、可靠的存储和访问的。

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据数据量大、类型多种多样、快速的增长等特性,那么HDFS是如何去解决大数据存储、高可用访问的了?

      对于一个企业大数据应用来说,搞定了大数据存储基本上就解决了大数据应用最重要的问题。Google 三驾马车的第一驾是GFS,Hadoop最先开始设计的就是HDFS,可见分布式存储的重要性,整个大数据生态计算框架多种多样,但是大数据的存储却没有太大的变化,HDFS依旧是众多分布式计算的基础。当然HDFS也有许多缺点,一些对象存储等技术的出现给HDFS的地位带来了挑战,但是HDFS目前还是最重要的大数据存储技术,新的计算框架想要获得广泛应用依旧需要支持HDFS。大数据数据量大、类型多种多样、快速的增长等特性,那么HDFS是如何去解决大数据存储、高可用访问的了?

HDFS系统架构

    Hadoop分布式文件系统的设计目标就是把数以千计的服务器管理起来,将这么大规模的服务器当作一个分布式文件系统进行管理,以提供PB存储容量应对大量数据的存储,同时供计算框架和上层应用提供服务,可以像普通文件系统一样存储、访问大规模的文件数据。具体的实现是将数据进行分块后进行并行的存储以及冗余存储,如下系统架构:


xxxx.png


图中hdfs中有两个关键组件,一个是Namenode负责对分布式文件系统元数据的管理,存储了文件名、路径、副本数量、数据块id以及存储的Datanode节点等信息,另一个是Datanode节点,负责文件数据的存储和读写操作,HDFS将文件数据分割成若干数据块,每个DataNode存储一部分数据块,这样文件就分布存储在整个HDFS服务器中。

大量数据存储的解决?

从hdfs系统架构就可以看出,通过将大文件切分成小的数据块存储到不同服务器上,可以实现一个大文件的存储,同时通过联合多个服务器多块硬盘实现整个存储系统的大容量,大文件的分片存储,不同分片可以进行并行读写操作,进而实现数据的高速访问。

HDFS文件系统高可用设计?

在一个分布式系统中,节点失效是比较常见的,在HDFS系统中不可避免的遇到网络问题、磁盘故障、DataNode节点故障、Namenode节点故障,那么HDFS是如何应对这些问题,保障系统的高可用的了。

首先我们来看下数据存储的故障容错,这块主要是磁盘介质,存储数据可能会出现错乱,这个HDFS主要会对存储在DataNode上的数据块,计算并存储校验和,并计算Datanode读取数据的校验和,如果异常就会转而去读取其他DataNode节点的备份数据。

其次,节点故障,磁盘,HDFS节点故障主要是通过心跳机制,DataNode会定期通过心跳去NameNode保持联系,Namenode监测到DataNode超时没有心跳后,就会查其元数据,通知其他节点复制失效节点上的数据块到其他服务器上,保证副本数量,磁盘故障的话DataNode也是类似处理,DataNode检测到磁盘故障后,将故障快反馈给namenode进行数据块复制。

接着NameNode鼓掌容错,作为HDFS核心节点,记录着HDFS文件分配表信息,所有的文件路径和数据块存储信息都保存在NameNode上,NameNode故障将导致整个集群的不可用,HDFS设计采用主从热备提高系统的可用性。

HDFS文件系统高吞吐量设计?

在文件操作中,NameNode负责文件元数据的操作,DataNode负责处理文件的读写请求,文件数据流不会经过NameNode的处理,只会跟存储在具体DataNode进行联系,因此NameNode不会成为系统的瓶颈,成百上千台DataNode节点应对文件内容数据流的读写,其吞吐量大大提高了。

HDFS的缺点

数据访问延时较长,数据以分块的方式存储在磁盘当中,读取需要经过Namenode到DataNode网络访问流程,以及磁盘寻址的过程,不如内存缓存访问高效以及不如关系型数据库利用索引加快数据访问特性。

不适合大量小文件存储,小文件太多造成文件元数据过多,超出了NameNode的处理能力,容易造成NameNode的瓶颈。

文件写入支持单一,只支持追加文件,不支持随机文件写入以及文件更新。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
151 6
|
1月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
46 0
|
1月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
35 4
|
1月前
|
消息中间件 存储 缓存
大数据-71 Kafka 高级特性 物理存储 磁盘存储特性 如零拷贝、页缓存、mmp、sendfile
大数据-71 Kafka 高级特性 物理存储 磁盘存储特性 如零拷贝、页缓存、mmp、sendfile
52 3
|
1月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
75 5
|
1月前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
36 4
|
1月前
|
存储 消息中间件 大数据
大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
大数据-70 Kafka 高级特性 物理存储 日志存储 日志清理: 日志删除与日志压缩
39 1
|
1月前
|
存储 消息中间件 大数据
大数据-68 Kafka 高级特性 物理存储 日志存储概述
大数据-68 Kafka 高级特性 物理存储 日志存储概述
26 1
|
1月前
|
存储 算法 NoSQL
大数据-138 - ClickHouse 集群 表引擎详解3 - MergeTree 存储结构 数据标记 分区 索引 标记 压缩协同
大数据-138 - ClickHouse 集群 表引擎详解3 - MergeTree 存储结构 数据标记 分区 索引 标记 压缩协同
34 0
|
1月前
|
存储 消息中间件 分布式计算
大数据-137 - ClickHouse 集群 表引擎详解2 - MergeTree 存储结构 一级索引 跳数索引
大数据-137 - ClickHouse 集群 表引擎详解2 - MergeTree 存储结构 一级索引 跳数索引
32 0

热门文章

最新文章