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的细粒度资源申请