首页 >常见问题 >HADOOP三大核心组件分别是什么

HADOOP三大核心组件分别是什么

小老鼠
小老鼠原创
2024-01-04 10:52:347122浏览

HADOOP三大核心组件分别是HDFS、MapReduce和YARN。详细介绍:1、HDFS:即分布式文件系统,用于存储Hadoop集群中的大量数据。具有高容错性,可跨多个数据节点存储数据,并提供高吞吐量的数据访问;2、MapReduce:用于大规模数据集的并行处理。它将大数据任务分解为多个小任务,并在多个节点上并行处理,最后将结果汇总;3、YARN:负责集群资源的分配和管理。

HADOOP三大核心组件分别是什么

Hadoop的三大核心组件是HDFS(分布式文件存储)、MapReduce(分布式计算)和YARN(资源调度)。

1、HDFS:HADOOP分布式文件系统

HDFS(Hadoop Distributed File System)是 Hadoop 项目的核心子项目,主要负责集群数据的存储与读取,HDFS 是一个主/从(Master/Slave) 体系结构的分布式文件系统。HDFS 支持传统的层次型文件组织结构,用户或者应用程序可以创建目录,然后将文件保存在这些目录中。文件系统名字空间的层次结构和大多数现有的文件系统类似,可以通过文件路径对文件执行创建、读取、更新和删除操作。但是由于分布式存储的性质,它又和传统的文件系统有明显的区别。

HDFS优点:

  • 高容错性。HDFS上传的数据自动保存多个副本,可以通过增加副本的数据来增加它的容错性。如果某一个副本丢失,HDFS 会复制其他机器上的副本,而我们不必关注它的实现。
  • 适合大数据的处理。HDFS 能够处理 GB、TB 甚至 PB 级别的数据,规模达百万,数量非常大。(1PB=1024TB、1TB=1014GB)
  • 流式数据访问。HDFS 以流式数据访问模式来存储超大文件,一次写入,多次读取,即文件一旦写入,则不能修改,只能增加。这样可以保持数据的一致性。

2、MapReduce:大规模数据处理

MapReduce 是 Hadoop 核心计算框架,适用于大规模数据集(大于1TB)并行运算的编程模型,包括 Map(映射)和 Reduce(规约) 两部分。

当启动一个 MapReduce 任务时,Map 端会读取 HDFS 上的数据,将数据映射成所需要的键值对类型并传到 Reduce 端。Reduce 端接收 Map 端传过来的键值对类型的数据,根据不同键进行分组,对每一组键相同的数据进行处理,得到新的键值对并输出到 HDFS,这就是 MapReduce 的核心思想。

一个完整的 MapReduce 过程包含数据的输入与分片、Map 阶段数据处理、Reduce 阶段数据处理、数据输出等阶段:

  • 读取输入数据。MapReduce 过程中的数据是从 HDFS 分布式文件系统中读取的。文件在上传到 HDFS 时,一般按照 128MB 分成了几个数据块,所以在运行 MapReduce 程序时,每个数据块都会生成一个 Map,但是也可以通过重新设置文件分片大小调整 Map 的个数,在运行 MapReduce 时会根据所设置的分片大小对文件重新分割(Split),一个分片大小的数据块就会对应一个Map。
  • Map 阶段。程序有一个或多个 Map,由默认存储或分片个数决定。针对 Map 阶段,数据以键值对的形式读入,键的值一般为每行首字符与文件最初始位置的偏移量,即中间所隔字符个数,值为这一行的数据记录。根据需求对键值对进行处理,映射成新的键值对,将新的键值对传到 Reduce 端。
  • Shuffle/Sort 阶段:此阶段是指从 Map 输出开始,传送 Map 输出到 Reduce 作为输入的过程。该过程会将同一个 Map 中输出的键相同的数据先进行一步整合,减少传输的数据量,并且在整合后将数据按照键排序。
  • Reduce 阶段:Reduce 任务也可以有多个,按照 Map 阶段设置的数据分区确定,一个分区数据被一个 Reduce 处理。针对每一个 Reduce 任务,Reduce 会接收到不同 Map 任务传来的数据,并且每个 Map 传来的数据都是有序的。一个 Reduce 任务中的每一次处理都是针对所有键相同的数据,对数据进行规约,以新的键值对输出到 HDFS。

3、Yarn:资源管理器

Hadoop 的 MapReduce 架构称为 YARN(Yet Another Resource Negotiator,另一种资源协调者),是效率更高的资源管理核心。

YARN 主要包含三大模块:Resource Manager(RM)、Node Manager(NM)、Application Master(AM):

  • Resource Manager 负责所有资源的监控、分配和管理;
  • Application Master 负责每一个具体应用程序的调度和协调;
  • Node Manager 负责每一个节点的维护。

以上是HADOOP三大核心组件分别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn