Hadoop3 学习笔记(二):概述(2)

Hadoop的组成
在这里插入图片描述



HDFS 架构概述

Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。

在这里插入图片描述
NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

将大数据分开存储到若干机器中,NN记录数据存储位置等元数据信息,DN存储文件,2NN辅助NN(减少NN重启时间)。



YARN 架构概述

Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。

在这里插入图片描述

ResourceManager:简称 RM,是 YARN 资源控制框架的中心模块,负责集群中所有的资源的统一管理和分配,它接收来自 NM(NodeManager)的汇报,建立 AM,并将资源派送给 AM(ApplicationMaster)。

NodeManager:简称 NM,NodeManager 是 ResourceManager 在每台机器上的代理,负责容器的管理,并监控他们的资源使用情况(CPU、内存、磁盘及网络等),以及向 ResourceManager 提供这些资源使用报告。

ApplicationMaster:简称 AM,YARN 中每个应用都会启动一个 AM,负责向 RM 申请资源,请求 NM 启动 container,并告诉 container 要做什么事情。

Container:资源容器。YARN 中所有的应用都是在 container 之上运行的。AM 也是在 container 上运行的,不过 AM 的 container 是 RM 申请的。

在这里插入图片描述

步骤1,用户向Yarn提交应用程序,其中包括用户程序、相关文件、启动ApplicationMaster命令、ApplicationMaster程序等。

步骤2,ResourceManager为该应用程序分配第一个Container,并且与Container所在的NodeManager通信,并且要求该NodeManager在这个Container中启动应用程序对应的ApplicationMaster。

步骤3,ApplicationMaster首先会向ResourceManager注册,这样用户才可以直接通过ResourceManager查看到应用程序的运行状态,然后它为准备为该应用程序的各个任务申请资源,并监控它们的运行状态直到运行结束,即重复后面4~7步骤。

步骤4,ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

步骤5,一旦ApplicationMaster申请到资源后,便会与申请到的Container所对应的NodeManager进行通信,并且要求它在该Container中启动任务。

步骤6,任务启动。NodeManager为要启动的任务配置好运行环境,包括环境变量、JAR包、二进制程序等,并且将启动命令写在一个脚本里,通过该脚本运行任务。

步骤7,各个任务通过RPC协议向其对应的ApplicationMaster汇报自己的运行状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以再任务运行失败时重启任务。

步骤8,应用程序运行完毕后,其对应的ApplicationMaster会向ResourceManager通信,要求注销和关闭自己。

任务可跨节点运行,当前节点资源不足可以在其他节点运行余下任务。



MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和 Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对 Map 结果进行汇总

将输入进行分片,然后交给不同的任务进行处理,然后合并成最终的解。

猜你喜欢

转载自blog.csdn.net/rfdjds/article/details/119765655