一篇讲明白 Hadoop 生态的三大部件

这篇具有很好参考价值的文章主要介绍了一篇讲明白 Hadoop 生态的三大部件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

每日一句正能量

黎明时怀着飞扬的心醒来,致谢爱的又一天,正午时沉醉于爱的狂喜中休憩,黄昏时带着感恩归家,然后在内心为所爱的祈祷中入眠,让赞美的歌谣停留在唇间。

前言

随着大数据时代的来临,处理和分析海量数据成为了一项重要的挑战。为了应对这一挑战,Hadoop生态系统应运而生。Hadoop生态系统是一个开源的、可扩展的解决方案,它由三大核心部件组成,分别是Hadoop分布式文件系统(HDFS)、Hadoop分布式计算框架(MapReduce)和Hadoop分布式存储和计算平台(YARN)。这三个部件共同协作,提供了一个高效和可靠的大数据处理平台。本文将对Hadoop生态系统的这三大部件进行详细解析,以帮助读者更好地理解Hadoop生态系统的工作原理和优势。

进入大数据阶段就意味着进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。
大数据技术的发展并不是偶然的,它的背后是对于成本的考量。集中式数据库或者基于MPP架构的分布数据库往往采用的都是性能稳定但价格较为昂贵的小型机、一体机或者PC服务器等,扩展性相对较差;而大数据计算框架可以基于价格低廉的普通的硬件服务器构建,并且理论上支持无限扩展以支撑应用服务。

在大数据领域中最有名的就是 Hadoop 生态,总体来看,它主要由三部分构成:底层文件存储系统 HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)、资源调度计算框架 Yarn(Yet Another Resource Negotiator,又一个资源协调者)以及基于 HDFS 与 Yarn的上层应用组件,例如 HBase、Hive 等。一个典型的基于 Hadoop 的应用如下图所示。
一篇讲明白 Hadoop 生态的三大部件,# 赠书活动,hadoop,大数据,分布式

▲图  一个典型的 Hadoop 应用

01 HDFS

HDFS 被设计成适合运行在通用硬件(Commodity Hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点,例如典型的 Master-Slave 架构(这里不准备展开介绍),也有不同点,HDFS 是一个具有高度容错性的系统,适合部署在廉价的机器上。关于HDFS 这里主要想说两点,默认副本数的设置以及机架感知(Rack Awareness)。

HDFS 默认副本数是 3,这是因为 Hadoop 有着高度的容错性,从数据冗余以及分布的角度来看,需要在同一机房不同机柜以及跨数据中心进行数据存储以保证数据最大可用。因此,为了达到上述目的,数据块需要至少存放在同一机房的不同机架(2 份)以及跨数据中心的某一机架(1 份)中,共 3 份数据。

机架感知的目的是在计算中尽量让不同节点之间的通信能够发生在同一个机架之 内,而不是跨机架,进而减少分布式计算中数据在不同的网络之间的传输,减少网络带 宽资源的消耗。例如当集群发生数据读取的时候,客户端按照由近到远的优先次序决定 哪个数据节点向客户端发送数据,因为在分布式框架中,网络 I/O 已经成为主要的性能瓶颈。

只有深刻理解了这两点,才能理解为什么 Hadoop 有着高度的容错性。高度容错性是Hadoop 可以在通用硬件上运行的基础。

02 Yarn

Yarn 是继 Common、HDFS、MapReduce 之 后 Hadoop 的又一个子项目, 它是在MapReduceV2 中提出的。

在 Hadoop1.0 中,JobTracker 由资源管理器(由 TaskScheduler 模块实现)和作业控制 (由 JobTracker 中多个模块共同实现)两部分组成。

在 Hadoop1.0 中,JobTracker 没有将资源管理相关功能与应用程序相关功能拆分开,逐 渐成为集群的瓶颈,进而导致集群出现可扩展性变差、资源利用率下降以及多框架支持不 足等多方面的问题。

在 MapReduceV2 中,Yarn 负责管理 MapReduce 中的资源(内存、CPU 等)并且将其 打包成 Container。这样可以使 MapReduce 专注于它擅长的数据处理任务,而不需要考虑资源调度。这种松耦合的架构方式实现了 Hadoop 整体框架的灵活性。

03 Hive

Hive 是基于Hadoop 的数据仓库基础构架,它利用简单的 SQL 语句(简称 HQL)来查询、分析存储在 HDFS 中的数据,并把 SQL 语句转换成 MapReduce 程序来进行数据的处理。Hive与传统的关系型数据库的主要区别体现在以下几点。

  • 存储的位置, Hive 的数据存储在 HDFS 或者 HBase 中,而后者的数据一般存储在裸设备或者本地的文件系统中,由于 Hive 是基于 HDFS 构建的,那么依赖 HDFS 的容错特性,Hive 中的数据表天然具有冗余的特点。

  • 数据库更新, Hive 是不支持更新的,一般是一次写入多次读写(这部分从 Hive 0.14之后开始支持事务操作,但是约束比较多),但是由于 Hive 是基于 HDFS 作为底层存储的, 而 HDFS 的读写不支持事务特性,因此 Hive 的事务支持必然需要拆分数据文件以及日志文 件才能支持事务的特性。

  • 执行 SQL 的延迟,Hive 的延迟相对较高,因为每次执行都需要将 SQL 语句解析成MapReduce 程序。

  • 数据的规模上,Hive 一般是 TB 级别,而后者规模相对较小。

  • 可扩展性上,Hive 支持 UDF、UDAF、UDTF,后者相对来说可扩展性较差。

04 HBase

HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它底层的文件系统使用 HDFS, 使用ZooKeeper 来管理集群的 HMaster 和各RegionServer 之间的通信,监控各RegionServer 的状态,存储各 Region 的入口地址等。

  1. 特点
    HBase 是 Key-Value 形式的数据库(类比 Java 中的 Map)。既然是数据库那肯定就有 表,HBase 中的表大概有以下几个特点。

1)大:一个表可以有上亿行,上百万列(列多时,插入变慢)。

2)面向列:面向列(族)的存储和权限控制,列(族)独立检索。

3)稀疏:对于空(null)的列,并不占用存储空间,因此,表可以设计得非常稀疏。

4)每个单元格中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入 时的时间戳。

5)HBase 中的数据都是字节,没有类型定义具体的数据对象(因为系统需要适应不同 类型的数据格式和数据源,不能预先严格定义模式)。

这里需要注意的是,HBase 也是基于 HDFS,所以也具有默认 3 个副本、数据冗余的特 点。此外 HBase 也是利用 WAL 的特点来保证数据读写的一致性。

  1. 存储
    HBase 采用列式存储方式进行数据的存储。传统的关系型数据库主要是采用行式存储 的方式进行数据的存储,数据读取的特点是按照行的粒度从磁盘上读取数据记录,然后根 据实际需要的字段数据进行处理,如果表的字段数量较多,但是需要处理的字段较少(特 别是聚合场景),由于行式存储的底层原理,仍然需要以行(全字段)的方式进行数据的查 询。在这个过程中,应用程序所产生的磁盘 I/O、内存要求以及网络 I/O 等都会造成一定的 浪费;而列式存储的数据读取方式主要是按照列的粒度进行数据的读取,这种按需读取的 方式减少了应用程序在数据查询时所产生的磁盘 I/O、内存要求以及网络 I/O。

此外,由于相同类型的数据被统一存储,因此在数据压缩的过程中压缩算法的选用以 及效率将会进一步加强,这也进一步降低了分布式计算中对于资源的要求。

列式存储的方式更适合 OLAP 型的应用场景,因为这类场景具有数据量较大以及查询字段较少(往往都是聚合类函数)的特点。例如最近比较火的 ClickHouse 也是使用列式存储的方式进行数据的存储。

05 Spark及Spark Streaming

Spark 由 Twitter 公司开发并开源,解决了海量数据流式分析的问题。Spark 首先将数据 导入 Spark 集群,然后通过基于内存的管理方式对数据进行快速扫描,通过迭代算法实现 全局 I/O 操作的最小化,达到提升整体处理性能的目的。这与 Hadoop 从“计算”找“数据” 的实现思路是类似的,通常适用于一次写入多次查询分析的场景。

Spark Streaming 是基于 Spark 的一个流式计算框架,它针对实时数据进行处理和控制, 并可以将计算之后的结果写入 HDFS。它与当下比较火的实时计算框架 Flink 类似,但是二者在本质上是有区别的,因为 Spark Streaming 是基于微批量(Micro-Batch)的方式进行数据处理,而非一行一行地进行数据处理。

关于作者

李杨,资深数据架构师,在数据相关领域有10年以上工作经验。头部保险资管公司科技平台交易系统团队开发组负责人,负责多个应用以及数据平台的建设、优化以及迁移工作。曾担任某数据公司技术合伙人,负责多个金融机构的数据仓库或数据平台相关的工作。《企业级数据架构:核心要素、架构模型、数据管理与平台搭建》作者。

本文摘编于《企业级数据架构:核心要素、架构模型、数据管理与平台搭建》作者。(书号:9787111746829),经出版方授权发布,转载请标明文章出处。

推荐理由

一部从企业架构视角系统讲解企业级数据架构的著作,系统梳理和阐述了企业架构的基础知识,以及数据架构的组成要素、架构模型、数据治理和数据资产管理的理论知识。
一篇讲明白 Hadoop 生态的三大部件,# 赠书活动,hadoop,大数据,分布式

后记

本文详细介绍了Hadoop生态系统的三大核心部件:Hadoop分布式文件系统(HDFS)、Hadoop分布式计算框架(MapReduce)和Hadoop分布式存储和计算平台(YARN)。通过这三个部件的协作,Hadoop生态系统能够实现高效、可扩展的大数据处理和分析。

首先,我们了解了HDFS,它为海量数据的存储提供了可靠的解决方案。HDFS采用分布式存储的方式,将数据划分为块并在集群中进行分布存储,从而实现了数据的高可用性和高吞吐量。

其次,我们介绍了MapReduce框架。MapReduce是一种分布式计算模型,能够将大规模的数据分割成小块,并通过并行处理来提高计算速度。通过Map和Reduce两个阶段的任务分配和结果汇总,MapReduce能够有效地进行数据处理和分析。

最后,我们了解了YARN平台。YARN是Hadoop的资源管理系统,它负责集群中的资源调度和任务管理。YARN将计算和存储分离,使得Hadoop集群能够更好地适应不同类型的应用需求,并提高集群资源的利用率。

通过研究和理解Hadoop生态系统的这三大部件,我们可以更好地利用Hadoop生态系统来应对大数据挑战。无论是数据存储、计算还是资源管理,Hadoop生态系统提供了一套完整的解决方案,帮助企业和个人实现高效的大数据处理和分析。随着技术不断发展,Hadoop生态系统也在不断演进和壮大,为大数据行业的发展做出了巨大贡献。相信通过不断探索和实践,Hadoop生态系统将在未来的数据世界中发挥更加重要的作用。

赠书活动

🎁本次送书1~4本,【取决于阅读量,阅读量越多,送的越多】👈
⌛️活动时间:截止到2024年4月12日
✳️参与方式:关注博主+三连(点赞、收藏、评论)

转载自:https://blog.csdn.net/u014727709/article/details/137130937
欢迎 👍点赞✍评论⭐收藏,欢迎指正文章来源地址https://www.toymoban.com/news/detail-852618.html

到了这里,关于一篇讲明白 Hadoop 生态的三大部件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 社区生态 | openEuler、龙蜥Anolis、统信UOS三大主流操作系统下编译GreatSQL二进制包

    为了更好地支持更多操作系统及相关生态,GreatSQL社区决定发布 openEuler、龙蜥Anolis、统信UOS三个操作系统下的GreatSQL二进制包。 相应的二进制包可以访问gitee.com上的 GreatSQL项目  https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.0.25-17 下载。 本文简要记录在这三个操作系统下编译

    2023年04月21日
    浏览(48)
  • Hadoop的第三大组成:YARN框架

    YARN是一个分布式资源调度系统,专门用来给分布式计算程序提供计算资源的,而且YARN只负责进行资源的提供,不管计算程序的逻辑,因此YARN这个软件非常的成功,因为YARN不关注程序计算逻辑,因此只要是分布式计算程序,只要满足YARN的运行要求,那么就可以在YARN上进行运

    2024年02月09日
    浏览(40)
  • 大数据技术之Hadoop(一)三大框架

    Hadoop是一个由apache开发的 分布式系统基础架构 。 主要解决海量数据的 存储 和海量数据的 分析计算 问题。 广义上来说,Hadoop通胀指一个更宽泛的概念—— Hadoop生态圈 高可靠性: Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失

    2024年02月04日
    浏览(34)
  • Hadoop生态圈:Hadoop的发展及其模块架构解析

    作者:禅与计算机程序设计艺术 Hadoop是一个开源的分布式计算框架,由Apache基金会开发,是一种可以运行在商用硬件上并支持超大规模数据集的大数据分析工具。它由MapReduce、HDFS、YARN组成,是Hadoop体系结构的基石之一。Hadoop的设计目标是将存储和计算分离,并通过高容错性

    2024年02月08日
    浏览(40)
  • Hadoop生态体系-2

    思想:分而治之 map:“分”,即把复杂的任务分解为若干个“简单的任务”来处理。可以进行拆分的前提是这些小任务可以 并行计算,彼此之间没有依赖关系 Reduce:“合”,对map阶段的结果进行全局汇总 MapReduce 是一个分布式运算程序的编程框架,核心功能是将用户编写的业务

    2024年02月15日
    浏览(34)
  • Hadoop生态体系-HDFS

    Hadoop:允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。 核心组件有: HDFS(分布式文件系统):解决海量数据存储 YARN(作业调度和集群资源管理的框架):解决资源任务调度 MAPREDUCE(分布式运算编程框架):解决海量数据计算 特点:扩容能力(

    2024年02月16日
    浏览(72)
  • Hadoop生态之Mapreduce

    今天给大家带来的是Hadoop生态中的Mapreduce,看到这里诸佬们可能就有疑惑了呢,啥是Mapreduce?小小的脑袋大大的疑惑。 在上篇博客中博主使用了王者来举例子,如果把Hadoop当作王者的话,HDFS是后台存储点券数据的系统的话,那么我们今天介绍的Mapreduce就是某者用来计算优惠

    2024年02月02日
    浏览(46)
  • Hadoop生态系统详解

    4.1 Hadoop生态系统 狭义的Hadoop VS 广义的Hadoop 广义的Hadoop:指的是Hadoop生态系统,Hadoop生态系统是一个很庞大的概念,hadoop是其中最重要最基础的一个部分,生态系统中每一子系统只解决某一个特定的问题域(甚至可能更窄),不搞统一型的全能系统,而是小而精的多个小系统

    2023年04月15日
    浏览(32)
  • Hadoop生态漏洞修复记录

    漏洞一: 端口:8088 协议:TCP 服务:radan-http 漏洞: Apache Hadoop YARN 资源管理器 REST API未授权访问漏洞【原理扫描】 官方建议修复方案: 临时解决方案: 通过系统内置防火墙只允许端口被业务主机访问 厂商解决方案: 更新Hadoop到2.X以上版本并启用Kerberos认证功能,禁止匿名

    2024年02月13日
    浏览(37)
  • 大数据hadoop生态技术简介

    Hadoop 生态是指围绕 Hadoop 大数据处理平台形成的一系列开源软件和工具,用于支持大规模数据处理、存储、管理、分析和可视化等应用场景。暂时将其核心技术分为9类:  数据采集技术框架: Flume、Logstash、FileBeat;Sqoop和Datax; Cannal和Maxwell 数据存储技术框架:  HDFS、HBas

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包