大数据技术的核心思想是分治;
分布式计算引擎的核心思想是分治+规约;
分治和规约体现在mapreduce 框架中,
就是map +reduce
map是对一份大的数据集,切成小份后各个击破,里面封装着对每一条数据的处理逻辑,对于一些简单的应用来说把每一条数据转化成为想要的样子,就可以直接输出,不需要reduce 过程
但是,每条数据之间有交集,需要做聚合汇总,就必须有reduce 阶段
reduce本质上是reduce By Key,将有相同Key的数据进行合并,在map 到reduce 的中间过程,会将map 的结果根据key 进行排序和重组,即sort,combine 也就是shuffle 过程
所以,对于mapreduce 框架来说,reduce 阶段不可以脱离map 而单独存在,因为reduce 本质上是reduce by key ,必须要通过map 阶段来定义哪个是key,哪个是value,以此作为reduce 的输入
在spark 中可以直接用reduce 吗?可以,他不需要map 来定义