首页 > 软件资讯 > HADOOP三大核心组件

HADOOP三大核心组件

时间:2024-05-16 11:08:19

Hadoop的基石由HDFS、MapReduce和YARN组成。这三大组件分别负责分布式文件存储、数据处理和资源智能调度,共同构建了大数据基础设施。

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

HDFS是Hadoop项目的核心,专注于集群数据的分布式存储与读取。作为主/从架构的一部分,HDFS支持传统层次型文件结构,用户或应用可以创建目录并放置文件。HDFS的名字空间层次结构类似现有的文件系统,通过路径操作实现创建、读取、更新和删除等操作。然而,由于基于分布式存储的特性,HDFS与传统的单机文件系统存在明显的区别。例如,数据冗余、容错性及跨节点访问等方面都有所体现。

Hadoop Distributed File System (HDFS)因其高效的大数据处理能力而备受推崇。首先,高容错性是HDFS的一大优点。它通过自动保存多个副本的方式,确保数据即使丢失也能快速恢复。这种设计大大降低了数据丢失的风险。其次,HDFS支持流式数据访问,这对于存储超大文件非常适用。用户一次写入文件,然后可以多次读取,这样既节省了磁盘空间,又能保证数据的一致性。综上所述,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替代,这标志着资源管理核心效率升级为YARN(Yet Another Resource Negotiator),一个高效能的资源管理者。

YARN架构堪称分布式计算的核心引擎,其设计精巧,功能丰富。主要模块分工明确:1. Resource Manager (RM):担任全系统的资源管家,监控集群中各类资源的动态,并根据需求进行合理分配。2. Node Manager (NM):位于每一个实际运行节点上,负责对本节点进行维护管理,同时也向上级的RM汇报节点状态。3. Application Master (AM):是应用级别的协调者,每个应用程序都由一个AM来调度和管理,确保任务按预定顺序执行。通过这三个模块的紧密协作,YARN能够有效地管理和优化资源分配,为大规模分布式计算提供强大的支撑。