文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

终于有人把Hadoop大数据系统架构讲明白了

2024-12-13 21:05

关注

1.Hadoop生态体系

Google通过三篇重量级论文为大数据时代提供了三项革命性技术:GFS、MapReduce和BigTable,即所谓的Google大数据的“三驾马车”。

Hadoop和Hbase是基于这三项技术发展出的开源实现。在大数据分析和处理领域,Hadoop兼容体系已经成为一个非常成熟的生态圈,涵盖了很多大数据相关的基础组件,包括Hadoop、Hbase、Hive、Spark、Flink、Storm、Presto、Impala等。

2.Hadoop集群硬件架构

Hadoop集群遵循主从架构,由一个或多个主节点(控制节点)和大量从节点组成,可以通过增减节点实现线性水平扩展。集群中的每个节点都有自己的磁盘、内存、处理器和带宽。主节点负责存储元数据,管理整个集群中的资源,并将任务分配给从节点;从节点负责存储数据并执行计算任务。

Hadoop包含三大组件:HDFS、Yarn和MapReduce。HDFS负责将文件切分为固定大小的数据块,以多副本分布式方式进行存储。Yarn是资源管理器,通过不同的进程执行资源管理和任务调度/监控任务。MapReduce是计算层,它通过将数据处理逻辑抽象为Map任务和Reduce任务,将“计算”在贴近数据存储位置并行执行。

Hadoop集群硬件架构如图1所示,具体的组件部署结构分析如下。

▲ 图1 Hadoop集群硬件架构

3.Hadoop体系分层功能架构

Hadoop设计了一个在分布式集群上实现资源管理与功能水平分层的架构,该分层解耦架构让大家可以在Hadoop上不断地叠加组件,并且每个组件可以独立升级,同类组件可以相互竞争,不断提升性能。作为Hadoop生态系统的核心,HDFS、YARN、MapReduce形成了一个灵活的基座,并以此为基础扩展出了非常多的Hadoop兼容开源项目和软件。

Hadoop体系架构可分为四层,上层一般需要依赖下层的组件,层与层之间相互透明,仅基于下层组件的接口进行交互,四层从下到上分别为分布式存储层、分布式计算资源管理层、分布式并行处理框架层、分析应用层,如图2所示。

▲ 图2 Hadoop体系的分层架构

每层的功能具体说明如下。

(1)分布式存储层

HDFS是一个分布式文件存储系统,它将统一管理整个集群的所有存储空间,并将写入的数据切分成相同大小的数据块,每个数据块保存多个副本(通常是三个),每个副本存储在不同的从节点上,以避免因单节点故障造成数据丢失。HDFS主节点(NameNode)保存命名空间、文件名、每个数据块及所有副本的元数据信息。

在大数据量情况下,文件存储格式与压缩方法对读写效率影响非常大。在HDFS上的数据格式主要包括文本、KV格式、行式存储格式、列式存储格式。具体的文件格式举例如下。

(2)分布式计算资源管理层

YARN(Yet Another Resource Negotiator)是一个资源协商器,它将统一管理和调度整个集群的计算资源,并将接收到的计算任务拆分到各个节点执行。如果一个节点运行缓慢或失败,YARN会将节点上的任务取消,然后分发到数据的其他副本所在节点进行运算。YARN作为资源协商器,可以让大量的应用程序和用户有效地共享集群计算资源,即支持多租户,这些数据处理可以是批处理、实时处理、迭代处理等。

最初,Hadoop由MapReduce组件同时负责资源管理和数据处理。Hadoop 2.0引入了YARN后将这两个功能分开。基于YARN,我们为Hadoop编写的不同组件可以非常方便地集成到Hadoop生态系统中,例如Spark、Giraph、Hive等项目,以及MapReduce本身。

YARN框架内有ResourceManager、NodeManager组件:ResourceManager在集群的主节点上运行,负责接收计算任务,并在所有竞争应用程序之间做资源分配;NodeManager在从节点上运行,负责容器,监视资源(CPU、内存、磁盘、网络)使用情况。

(3)分布式并行处理框架层

数据处理框架分为批式处理框架和流式处理框架。

批式处理框架主要有Hadoop MapReduce和Spark等。Hadoop MapReduce组件封装了MapReduce并行编程模型。Spark是对Hadoop MapReduce组件的改进,通过对中间结果使用内存存储,大幅提高了计算速度,目前是批处理应用的主流选择。

传统的并行计算模型的实现和使用都非常复杂,如MPI(Message Passing Interface,消息传递接口)一般都用在科学计算等专门领域。MapReduce作为一种全新的通用并行编程模型,是基于集群的并行计算方式的创新抽象,非常简单易用,开发友好。MapReduce处理数据为Key-Value格式,其主要思想是从函数式编程借鉴而来的。MapReduce模型将计算分为两个阶段。

流式处理框架主要有Storm、Spark Streaming、Flink等。Storm是较早成熟的低延迟流式数据处理框架,可以进行事件级(单条数据)处理。Spark Streaming是基于Spark批处理实现的微批式的流式处理,延迟较高,可以和Spark一起应用,实现流批一体的数据处理。Flink是当前最出色的流式数据处理框架,可以进行事件级数据处理,具有低延迟、吞吐量大、支持SQL等优点。

(4)分析应用层

基于HDFS、YARN和并行处理框架中的一个组件或组合,可以搭建非常多样的大数据应用,主要包括交互分析(OLAP)、随机查询、专门领域的数据分析、搜索等。各类应用的介绍如下。

本文摘编于《数据应用工程:方法论与实践》,经出版方授权发布。(书号:9787111704096)转载请保留文章出处。

来源:数仓宝贝库内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯