Hadoop 1.x:体系结构,主要组件以及HDFS和MapReduce的工作方式

时间:2020-02-23 14:33:29  来源:igfitidea点击:

在本文中,我们将讨论Apache Hadoop 1.x体系结构及其组件的详细工作方式。

Hadoop 1.x架构

Apache Hadoop 1.x或者更早版本使用以下Hadoop体系结构。
它是Hadoop 1.x高级架构。
我们将在接下来的部分中讨论详细的低层架构。

如果您目前不了解这种架构,则无需担心。
阅读这篇文章的下一部分以及以后的文章,以很好地理解它。

  • Hadoop通用模块是适用于所有Hadoop组件的Hadoop基本API(一个Jar文件)。
    所有其他组件都在此模块上运行。

  • HDFS代表Hadoop分布式文件系统。
    它也被称为HDFS V1,因为它是Hadoop 1.x的一部分。
    它用作Hadoop体系结构中的分布式存储系统。

  • MapReduce是批处理或者分布式数据处理模块。
    它是按照Google的MapReduce算法构建的。
    由于它是Hadoop 1.x的一部分,因此也称为" MR V1"或者" Classic MapReduce"。

  • 其余所有Hadoop生态系统组件都在这两个主要组件之上工作:HDFS和MapReduce。
    在我的后续文章中,我们将详细讨论所有Hadoop生态系统组件。

注意:-Hadoop 1.x MapReduce是根据Google的MapReduce算法技术论文开发的,也被称为"经典MapReduce"。

Hadoop 1.x主要组件

Hadoop 1.x主要组件组件包括:HDFS和MapReduce。
它们也被称为Hadoop 1.x的"两个支柱"。

HDFS:HDFS是Hadoop分布式文件系统,其中BigData使用商品硬件存储。
它设计用于默认块大小为64MB的大型数据集(我们可以根据我们的项目要求进行更改)。

HDFS组件又分为两个子组件:

  • 名称节点

名称节点放置在主节点中。
它用于存储有关数据节点的元数据,例如"数据节点中存储了多少块,哪些数据节点具有数据,从节点详细信息,数据节点位置,时间戳等"。

  • 数据节点
    Data Nodes are places in Slave Nodes. It is used to store our Application Actual Data. It stores data in Data Slots of size 64MB by default.

MapReduce:MapReduce是一种分布式数据处理或者批处理编程模型。
与HDFS一样,MapReduce组件也使用商品硬件以可靠且容错的方式处理"高速率下的大量数据"。

MapReduce组件再次分为两个子组件:

  • 工作追踪器

Job Tracker用于将MapReduce任务分配给节点集群中的Task Tracker。
有时,由于先前的任务跟踪器出现故障或者关闭情况,它会将相同的任务重新分配给其他任务跟踪器。

Job Tracker维护所有任务跟踪器状态,如"正在运行/正在运行","失败","已恢复"等。

  • 任务追踪器
    Task Tracker executes the Tasks which are assigned by Job Tracker and sends the status of those tasks to Job Tracker.

在下一部分中,我们将详细讨论这四个子组件的职责以及它们如何相互作用以执行"客户端应用程序任务"。

Hadoop 1.x主要组件如何工作

Hadoop 1.x组件遵循此架构相互交互,并以可靠且容错的方式并行工作。

Hadoop 1.x组件高级架构

  • 主节点和从节点都包含两个Hadoop组件:

  • HDFS组件

  • MapReduce组件

  • 主节点的HDFS组件也称为"名称节点"。

  • 从节点的HDFS组件也称为"数据节点"。

  • 主节点的"名称节点"组件用于存储元数据。

  • 从节点的"数据节点"组件用于存储实际的应用程序大数据。

  • HDFS通过使用64MB大小的"数据插槽"或者"数据块"来存储数据。

  • 主节点的MapReduce组件也称为"作业跟踪器"。

  • 从节点的MapReduce组件也称为"任务跟踪器"。

  • 主节点的"作业跟踪器"会小心地将任务分配给"任务跟踪器",并从中接收结果。

  • 从节点的MapReduce组件"任务跟踪器"包含两个MapReduce任务:

  • 地图任务

  • 减少任务

我们将在我的后续文章中通过一些简单的端到端示例详细讨论MapReduce任务(Mapper和Reducer)。

  • 从属节点的"任务跟踪器"实际上是通过使用MapReduce批处理模型执行客户端的任务的。

  • 主节点是主要节点,用于照顾所有剩余的从节点(次要节点)。

Hadoop 1.x组件详细架构

Hadoop 1.x架构说明

  • 客户(一个或者多个)将他们的工作提交到Hadoop系统。

  • Hadoop系统收到客户端请求时,首先会被主节点接收。

  • 主节点的MapReduce组件"作业跟踪器"负责接收客户端工作,并分为可管理的独立任务,并将其分配给任务跟踪器。

  • 从节点的MapReduce组件"任务跟踪器"从"作业跟踪器"接收这些任务,并使用MapReduce组件执行这些任务。

  • 所有任务跟踪程序完成工作后,任务跟踪程序将获得这些结果并将其合并为最终结果。

  • 最终,Hadoop系统会将最终结果发送给客户端。

Hadoop中存储和计算操作的工作方式

所有这些主节点和从节点都被组织成一个集群网络。
每个群集又被分为机架。
每个机架包含一组节点(商品计算机)。

当Hadoop系统收到将大型数据集存储到HDFS中的"存储"操作时,它将数据存储到3个不同的节点中(默认情况下,我们将复制因子设置为3)。
此完整数据不存储在一个节点中。
大数据文件分为可管理的有意义的块,并分配给具有3个副本的不同节点。

如果Hadoop系统收到任何"计算"操作,它将与附近的节点通信以检索这些数据块。
在读取数据或者计算时,如果一个或者多个节点发生故障,则它将通过接近任何附近的可用节点来自动执行这些任务。

这就是Hadoop系统提供高可用性和容错性的BigData解决方案的原因。

注意:

  • Hadoop 1.x体系结构具有很多局限性和缺陷。
    因此,Hadoop社区已经对该架构进行了评估并将其重新设计为Hadoop 2.x架构。

  • Hadoop 2.x架构完全不同,并且解决了所有Hadoop 1.x架构的局限性和缺点。