千锋教育-做有情怀、有良心、有品质的职业教育机构
1. MR没有所谓的DAG划分,一次MR任务就意味着一次shufflfflffle;spark则是RDD驱动的,行动算子触发时才会按宽窄依赖划分阶段,只有宽依赖才会发生shuffle。
2. MR在reduce端还会进行一次合并排序,spark则在map端就完成了排序,采用Tim-Sort排序算法。
3. MR在reduce拉取的数据直接放磁盘再读,spark则是先放内存,放不下才放磁盘
4. MR在数据拉取完毕后才开始计算,spark则是边拉边计算(reduceByKey原理)
5. 基于以上种种原因,MR自定义分区器时往往还需要自定义分组,spark则不需要(或者说map结构已经是自定义分组了)。
相关推荐