Hadoop主要由HDFS、Mapreduce、yarn三部分组成,hdfs负责分布式文件数据的存储,yarn复杂资源的调度,mapreduce负责运算。
一、hdfs架构
namenode:存储文件的元数据信息
datanode:存储真实数据
2nn:对namenode的元数据进行备份
二、yarn架构
resourceManager:整个集群资源(内存 cpu等)的老大
nodeManager:单个节点服务器的老大
ApplicationMaster:单个任务运行的老大
container:节点中虚拟出来的容器,有自己的cpu 内存等任务运行所需的资源
三、mapreduce架构
mapTask:多个maptask并行处理输入数据
reduceTask:对map阶段数据进行汇总
四、HDFS、Mapreduce、yarn三者之间的关系、工作流程
(1)客户端向集群提交mr任务
(2)resourceManager选取一个节点,开辟一个容器container,运行applicationMaster
(3)applicationMaster向resourceManager申请运行所需的集群资源
(4)resourceManager分配有空闲资源的节点,开启container,在容器中运行mapTask(可以多个并行)
(6)同样也会开启容器运行reduceTask,对map阶段运行的结果进行汇总
(5)reduceTask将任务运行结果写入到datanode上进行保存,并将元数据存储到namenode上
(6)随后2nn也进行了元数据的备份