美文网首页大数据领域精选
【Hadoop】Hadoop 体系及核心组件简介

【Hadoop】Hadoop 体系及核心组件简介

作者: 熊本极客 | 来源:发表于2023-06-04 22:33 被阅读0次

    1.Hadoop 体系

    1.1 Google 大数据三大理论

    1.1.1 Google FS

    GFS 是一个可扩展的分布式文件系统,把原文件分割成很多块的小文件,以冗余的方式保存在不同节点上。在 GFS 下每个原文件都被分割成固定大小的 chunk。GFS 由一个 master 和大量的 chunk server 组成。为了简化处理流程和提高系统性能,通过 master 来保存目录和索引信息,从而产生了单点故障。为了解决单点故障,允许一个 GFS 集群中有多个master。为了保证信息的可靠性,每个文件都会以 chunk 的方式备份在不同的 chunk server。

    1.1.2 MapReduce

    MapReduce 是一种并行编程模型,其核心思想是“分而治之”,将一个大规模的数据集切分成很多小的单独的数据集,然后放在多个机器上同时处理。

    1.1.3 BigTable

    Bigtable 是一种压缩的、高性能的、高可扩展性的,基于 GFS 文件系统的数据存储系统,用于存储大规模结构化数据。Bigtable 是一个稀疏、分布式、持久化存储的多维有序映射表,其特点如下:

    • Persistent:一个表是一个包含海量 Key-Value 键值对的 Map,数据是持久化存储的;
    • Distributed:这个大的 Map 需要支持多个分区来实现分布式;
    • Multidimensional Sorted Map:这个 Map 按照 Row Key 进行排序,这个 Key 是一个由 {Row Key, Column Key, Timestamp} 组成的多维结构;
    • Sparse:每一行列的组成并不是严格的结构,而是稀疏的,也就是说,行与行可以由不同的列组成:
    Row Columns

    BigTable 的数据模型具体来说就是:Bigtable 的每一个键值对的 Key 都为 Row key + Column key + Timestamp 的结构,Value 则是字符串:(row:string, column:string,time:int64) -> string

    举一个具体的例子:比如,一个存储了大量网页及其相关信息的表 Webtable,Webtable 使用 URL 作为行名,使用网页的某些属性作为列名,网页的内容存入 contents 列中,并使用获取该网页的时间戳标识同一个网页的不同版本。在 Bigtable 中,Webtable 的存储范例如下图所示:


    image.png

    1.2 Hadoop 体系

    Hadoop 的起源与 Google 大数据三大理论息息相关。HDFS 是基于 GFS 分布式文件系统实现的,MapReduce、Spark 的核心是 MapReduce 并行编程模型,而 HBase 也是基于 BigTable 实现的。

    Hadoop 有以下 4 个基本模块:

    • Hadoop 基本功能库:支持其它 Hadoop 模块的通用程序包,
    • HDFS:一个分布式文件系统,能够以高吞吐量访问应用的数据。
    • YARN:一个作业调度和资源管理框架。
    • MapReduce:一个基于 YARN 的大数据并行处理程序。
    image.png

    2.Hadoop 核心组件

    2.1 HDFS

    HDFS 是基于 GPS 设计思路来实现的,把原文件分割成很多块的小文件,以冗余的方式保存在不同节点上。HDFS 的 NameNode 负责记录具体数据的元数据信息,而 DataNode 是真正的数据节点,其中 Secondary NameNode 主要作用是分担主 NameNode 的一部分工作负载。NameNode 和 DataNode之间维持着心跳。如果 DataNode 不可用,会启用副本复制。

    image.png

    2.2 Hbase

    HBase 的核心思想是 BigTable,基于列式存储的分布式数据库。利用 HDFS 作为其文件存储系统,底层采用 LSM Tree 数据结构进行存储,因此写入性能很强,读取性能较差。

    image.png

    2.3 Yarn

    Yarn 采用 Master/Slaver 架构,其中 ResourceManager 为 Master,NodeManager 为 Slaver,RM 负责对各个NM上的资源进行统一管理和调度。

    image.png

    2.4 MapReduce

    MapReduce 的核心思想是“分而治之”,采用 Master/slave 结构,按照编程规范编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序。MapReduce 把一个复杂的业务,任务分成若干个简单的任务分发到网络上的每个节点并行执行,把 Map 阶段的结果由 Reduce 进行汇总,最终大大缩短了数据处理的时间开销。

    image.png

    相关文章

      网友评论

        本文标题:【Hadoop】Hadoop 体系及核心组件简介

        本文链接:https://www.haomeiwen.com/subject/lmcbsdtx.html