架 软考架构师知识库 系统架构设计师 · 课件全文检索
已就绪 127 份课件 1966 页

Hadoop生态核心组件介绍

第二十三章-架构案例分析专题 · 14 页 · 3801 字 录播 案例

Hadoop生态核心组件介绍

项目 内容
来源 录播
章节 第二十三章-架构案例分析专题
标签 案例
页数 14
总字数 3801
原始课件 基础录播课/第二十三章-架构案例分析专题/Hadoop生态核心组件介绍.pdf

本文由课件自动整理,页内文字按原始讲义阅读顺序还原;[图] 表示该位置存在图示,

图示内容请对照原始课件查看。


目录


第 1 页 · Hadoop生态核心组件介绍

在了解Hadoop生态系统及其组件之前,我们首先了解一下 Hadoop 的三大组件,即 HDFS、

MapReduce、YARN,它们共同构成了 Hadoop 分布式计算框架的核心。

HDFS(Hadoop Distributed File System):HDFS 是 Hadoop 的分布式文件系统,它是将大规

模数据分散存储在多个节点上的基础。HDFS 主要负责数据的存储和管理,可以将大数据集分

成多个数据块,并将这些数据块分配到不同的计算节点上存储,提高数据的可靠性和处理效率。

MapReduce:MapReduce是 Hadoop 的分布式计算框架,它提供了一种简单的编程模型,

通过将大规模数据分解成多个小任务并行处理,可以大大提高数据处理的效率。MapReduce 模

型包括 Map 和 Reduce 两个阶段,其中 Map 阶段将数据分解成多个小块进行处理,

Reduce 阶段将处理结果合并。

YARN(Yet Another Resource Negotiator):YARN是 Hadoop 的资源管理器,它负责为多个应

用程序分配和管理计算资源,可以有效地提高计算资源的利用率。YARN 可以将集群中的计算

资源划分为多个容器,为不同的应用程序提供适当的资源,并监控和管理各个应用程序的运行状

态。

第 2 页 · [图]

1.HDFS

HDFS是 Hadoop 的分布式文件系统,旨在在廉价硬件上存储大型文件。它具有高度容错能力,

并为应用程序提供高吞吐量。 HDFS 最适合那些拥有非常大数据集的应用程序。

Hadoop HDFS 文件系统提供 Master 和 Slave 架构。主节点运行 Namenode 守护进程,

从节点运行 Datanode 守护进程。

第 3 页 · [图]

2.MapReduce

MapReduce是 Hadoop 的数据处理层,它将任务分成小块,并将这些小块分配给通过网络连

接的许多机器,并将所有事件组装成最后的事件数据集。 MapReduce 所需的基本细节是键值

对。所有数据,无论是否结构化,在通过 MapReduce 模型传递之前都需要转换为键值对。在

MapReduce 框架中,处理单元被移至数据,而不是将数据移至处理单元。

[图]

第 4 页 · 3.YARN

YARN代表Yet Another Resource Negotiator,它是 Hadoop 集群的资源管理器。 YARN 用于实

现 Hadoop 集群中的资源管理和作业调度。 YARN 的主要思想是将作业调度和资源管理拆分

到各个进程中进行操作。

YARN 提供了两个守护进程;第一个称为资源管理器(Resource Manager),第二个称为节点管

理器(Node Manager)。这两个组件都用于处理 YARN 中的数据计算。资源管理器运行在

Hadoop 集群的主节点上,并协商所有应用程序中的资源,而节点管理器托管在所有从节点上。

节点管理器的职责是监视容器、资源使用情况(例如 CPU、内存、磁盘和网络)并向资源管理

器提供详细信息。

[图]

4.Hive

第 5 页 · 让我们了解 Apache Hive 如何处理 SQL 查询:

Hive是 Hadoop 的数据仓库项目。 Hive 旨在促进非正式数据汇总、即席查询和大量数据的

解释。借助 HiveQL,用户可以对 HDFS 中的数据集存储执行即席查询,并使用该数据进行进

一步分析。 Hive 还支持自定义的用户定义函数,用户可以使用这些函数来执行自定义分析。

让我们了解 Apache Hive 如何处理 SQL 查询:

用户将使用命令行或 Web UI 向驱动程序(例如 ODBC / JDBC)提交查询。

驱动程序将借助查询编译器来解析查询以检查语法 / 查询计划。

编译器将向元数据数据库发送元数据请求。

作为响应,Metastore 将向编译器提供元数据。

现在编译器的任务是验证规范并将计划重新发送给驱动程序。

现在驱动程序将向执行引擎发送执行计划。

该程序将作为映射缩减作业执行。执行引擎将作业发送到名称节点作业跟踪器,并为该

作业分配一个存在于数据节点中的任务跟踪器,并在此处执行查询。

查询执行后,执行引擎将从数据节点接收结果。

执行引擎将结果值发送给驱动程序。

驱动程序会将结果发送到 Hive 接口(用户)。

第 6 页 · [图]

5.Pig

Pig由 Yahoo 开发,用于分析存储在 Hadoop HDFS 中的大数据。 Pig 提供了一个分析海

量数据集的平台,该平台由用于通信数据分析应用程序的高级语言组成,并与用于评估这些程序

的基础设施相链接。

Pig 具有以下关键属性:

优化机会:Pig 提供了查询优化,帮助用户专注于意义而不是效率。

可扩展性:Pig 提供了创建用户定义函数以进行特殊用途处理的功能。

第 7 页 · [图]

6.Mahout

Mahout是一个用于创建机器学习应用程序的框架。它提供了一组丰富的组件,您可以通过选

择的算法构建定制的推荐系统。 Mahout 的开发目的是提供执行、可扩展性和合规性。

以下是定义这些关键抽象的 Mahout 接口的重要包:

DataModel

UserSimilarity

ItemSimilarity

UserNeighborhood

第 8 页 · [图]

7.HBase

HBase是继 Google Bigtable 之后创建的分布式、开源、版本化、非关系型数据库。它是

Hadoop 生态系统的重要组件,利用 HDFS 的容错功能,提供对数据的实时读写访问。HBase

尽管是数据库,但也可以称为数据存储系统,因为它不提供触发器、查询语言和二级索引等

RDBMS 功能。

HBase 具有以下功能:

它提供持续的模块化可扩展性。

它提供定期的读取和写入。

直观且可配置的表分片。

RegionServer 之间的自动故障转移支持。

第 9 页 · 使用 Java API 进行客户端访问很简单。

它提供中央基类,用于支持带有 Apache HBase 表的 Hadoop MapReduce 作业。

使用 Java API 进行客户端访问很简单。

查询谓词通过服务器端过滤器下推。

它提供了 Thrift 网关和 REST-ful Web 服务,支持 XML、Protobuf 和二进制数据

编码选择。

[图]

8.Zookeeper

Zookeeper充当 Hadoop 不同服务之间的协调者,用于维护配置信息、命名、提供分布式同

步、提供群组服务。 Zookeeper 用于修复这些新部署在分布式环境中的应用程序的错误和竞

争条件。

第 10 页 · [图]

9.Sqoop

Sqoop是一个数据传输工具,用于在 Hadoop 和关系数据库之间传输数据。它用于将数据从

关系数据库管理系统(MySQL 或 Oracle)或大型机导入到 Hadoop(HDFS),并在 Hadoop

MapReduce 中转换数据。它还用于将数据导出回 RDBMS。 Sqoop 使用map-reduce来导入

和导出数据,因此它具有并行处理和容错特性。

[图]

10.Flume

第 11 页 · 传输大量事件数据。

Flume是一种类似于 Sqoop 的日志传输工具,但它适用于非结构化数据(日志),而 Sqoop

用于结构化和非结构化数据。 Flume 是一个可靠、分布式且可用的系统,用于高效地收集、聚

合大量日志数据并将其从许多不同的源移动到 HDFS。它不仅限于日志数据聚合,还可以用于

传输大量事件数据。

Flume 具有以下三个组件:

Source

Channel

Sink

[图]

11.Oozie

Oozie是一个工作流调度框架,用于调度 Hadoop Map / Reduce 和 Pig 作业。 Apache

Oozie 工作流程是 Hadoop Map / Reduce 作业、Pig 作业等操作的集合,排列在控制依赖

DAG(有向无环图)中。从一个动作到另一个动作的 “控制依赖性” 表明,除非第一个动作

完成,否则另一个动作不会开始。

Oozie 工作流有以下两个节点,即控制流节点和操作节点。

控制流节点(Control Flow Nodes):这些节点用于提供控制工作流执行路径的机制。

第 12 页 · [图]

操作节点(Action Node):操作节点提供了一种机制,工作流通过该机制触发计算 / 处理任务

的执行,例如 Hadoop MapReduce、HDFS、Pig、SSH、HTTP 作业 。

[图]

12.Ambari

Ambari用于配置、管理和监控 Apache Hadoop 集群。

它向系统管理员提供以下任务:

Hadoop 集群的配置:它提供了一种在任意数量的节点上安装 Hadoop 服务的媒介。它还处

理集群的 Hadoop 服务配置。

Hadoop 集群的管理:它提供了一个中央控制来管理 Hadoop 服务,例如整个集群的启动、

停止和重新配置。

Hadoop 集群监控:它提供了一个用于监控 Hadoop 集群的仪表板(例如节点关闭、剩余磁

盘空间不足等)。

第 13 页 · [图]

13.Spark

Spark是一个通用且快速的集群计算系统。它是一个非常强大的大数据工具。 Spark 提供了

Python、Scala、Java、R 等多种语言的丰富 API。 Spark 支持 Spark SQL、GraphX、MLlib、

Spark Streaming、R 等高级工具。这些工具用于执行不同类型的操作,我们将在 Spark 部分

中看到。

第 14 页 · [图]

本页无文本内容(内容以图示呈现),请查看原始课件第 14 页。