HDFS,YARN,MapReduce三者之间的关系

 

HDFS:DataNode存储数据,NameNode负责告诉别人数据存储在哪个节点,哪些信息,2NN,备份NameNode.

YARN:整个集群资源的管理。

MapReduce:

(1)分布式的运算程序往往需要分成至少 2 个阶段。
(2)第一个阶段的 MapTask 并发实例,完全并行运行,互不相干。
(3)第二个阶段的 ReduceTask 并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask 并发实例的输出。
(4)MapReduce 编程模型只能包含一个 Map 阶段和一个 Reduce 阶段,如果用户的业务逻辑非常复杂,那就只能多个 MapReduce 程序,串行运行。

大致过程:

1、有一个client(可以代码调用,一些页面访问入口等),向集群提交一个任务,比如查询某某文件。

 2、client提交完任务之后,YARN中的ResourceManger找一个节点,开启一个Container,然后把任务放到Container中,任务叫App Mstr,App Mstr向ResourceManger申请,任务开启所需资源。ResourceManger寻找哪些节点有资源,App Mstr开启Map Task,相当于Map阶段。每一个Map Task独立运行,最终把结果汇总写入磁盘HDFS上。

posted @ 2021-12-21 09:58  贱贱的小帅哥  阅读(1711)  评论(0编辑  收藏  举报