hdfs 是分布式文件系统, yarn 类似于云 OS 资源管理器,用来调度各种资源。
mapreduce, spark, storm 是真正运行的进程,干活的,他们都是在 yarn 基础上。他们在运行时都需要调度各种数据资源和计算资源。
mapreduce 就是一个并行计算框架。可以处理日志解析,数据统计以及数据的分析挖掘。
下面分析下 mapreduce 的整个过程
1. 当一个文件提交后,需要将这个文件切分成一个个小的部分,供多个节点来处理。切分后得到的结果就是 <key,value> 对。
2. 上面的 key, value 对就作为输入传入了 map 接口。Map 框架会调用 map 函数处理 InputSplit 中的每个 key/value 对。
3. map 函数处理完成后的输出的 key/value 不需要与输入键具有相同的数据类型
4. map 后得到的数据都会根据输出 key,value 对的 key 进行分组聚合,并传递到 reduce 进行处理
5. map 后得到的数据要经过中间过程的处理,分为 3 个处理阶段: 洗牌 shuffle,排序和归约
6. 洗牌和排序是同时进行的
7. reduce 就是归约,会对 <key, list of values> 进行处理