以责人之心责己,以恕己之心恕人。——人民日报
前言
前面了解到了什么是大数据, 学习大数据为什么要学习hadoop, hadoop是什么.
现在我们需要具体的了解hadoop.
此篇文章具体了解hadoop的组成.
从官网看hadoop组成结构
官网地址: https://hadoop.apache.org/
由上图官网可知, hadoop可以分为四个模块: HDFS,MapReduce,Yarn,Common.
那么hadoop从发行版本,即hadoop1.X 到现如今的 hadoop3.x,他都是这四个模块没有变化吗?
Hadoop各个版本的不同模块及负责的功能变化
由图可知, hadoop最开始是只有三个模块的,及 common,hdfs,mapreduce. 最开始是将计算和资源调度都由mapreduce掌控.演化到hadoop2.x之后才增加了yarn模块,将原本mapreduce掌控计算和资源调度的工作转变成了 mapreduce只负责计算. yarn负责资源调度的方式. 一直沿用至今hadoop3.x
Hadoop四个模块具体的功能如何理解呢?
① HDFS架构
Hadoop Distributed File System,简称HDFS,是一个分布式文件系统
HDFS 直接hadoop存储的模块名称,只是一个笼统的称呼,叫做分布式文件存储系统. 到底是如何存储数据的,什么样的方式存取.这就涉及到具体的HDFS的一些概念了.
NameNode:只是存文件的相关信息
DataNode:负责真正的存储你的文件
Secondary NameNode:帮助NameNode的, 此处只是简单了解.
这些都是HDFS这个分布式文件存储系统里面具体负责那些功能的一些名称.
②YARN架构
Yet Another Resource Negotiator简称YARN ,另一种资源协调者,是Hadoop的资源管理器。
上面两个图都是yarn架构,表达的内容一样.
Yarn由四部分组成: ResourceManager,NodeManager,ApplicationMaster,Container
ResourceManager是整个集群的老大,NodeManager集群中每一个节点的老大.
Container:假设我在我当前的NodeManager里面我跑了一个任务,这一个任务我们把它称之为一个job,我跑这个任务,我的applicationmaster会根据我这个任务的一些情况,帮我去申请一些资源.比如我申请一个G的cpu,申请了一个G的内存等.我把申请下来的资源我要通过container给他做一个抽象.所以说container它封装了某个节点上的多维度资源.比如说你的内存,你的cpu,你的磁盘等等.封装起来的目的就是不要让别的job来侵占我这个job的资源.就是我申请好了资源封装完成后,这个资源是不允许给别人用的.
除此之外,我们还可以通过这个container理解到我这个job运行时的资源消耗是什么情况等等.
ResourceManager是整个集群的老大
NodeManager是集群节点的老大
③MapReduce架构
MapReduce将计算过程分为两个阶段:Map和Reduce
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总
④Common模块
Hadoop-common是指支持Hadoop模块的常用实用程序和库的集合.类似Java的公共类. 学习hadoop的时候设计Common不多.看源码的时候遇到的比较多.此处暂不介绍.
⑤HDFS、YARN、MapReduce三者关系
此处先简要了解hadoop四个模块的组成. 后面会一一详解.
- 本文作者: xubatian
- 本文链接: http://xubatian.cn/hadoop组成模块及各模块的简介/
- 版权声明: 本博客所有文章除特别声明外均为原创,采用 CC BY 4.0 CN协议 许可协议。转载请注明出处:https://www.xubatian.cn/