Spark和MapReduce的比较(包含磁盘内存,算子,粗粒度资源申请和细粒度资源申请)【文字说明原理+图片】
Spark是开源的通用的计算框架,目的是为了使数据分析更快。MR也是计算框架。
区别?
1).MR是基于磁盘迭代,Spark是基于内存迭代。
2).Spark中有DAG有向无环图。
3).MR中只有map,reduce两个类,相当于Spark中两个算子。Spark中有三类算子(转换算子,行动算子,持久化算子)。
4).MR是细粒度资源申请,Spark是粗粒度资源申请
Spark的粗粒度资源申请
Application执行完之前,首先将所有的资源申请完毕之后再执行,再运行,task执行时就不需要自己去申请资源,task相对较快,Application执行就快,当最后一个task执行完毕之后,所有的资源才会被释放
优点:
Application执行快
缺点:
容易造成集群资源不能充分利用
Spark是粗粒度资源申请
Spark中提供了一系列方便的算子
MR中只有map,reduce算子,其他需要自己去实现
Mapreduce的细粒度资源申请
Application执行时,不会将所偶遇资源申请完毕,由task执行时,自己申请,task执行完毕之后,资源立即被释放,Task相对较慢,application就执行相对较慢
优点:集群资源可以充分利用
缺点:相对较慢
图示如下: