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就执行相对较慢

优点:集群资源可以充分利用

缺点:相对较慢

图示如下:

Spark和MapReduce的比较(包含磁盘内存,算子,粗粒度资源申请和细粒度资源申请)【文字说明原理+图片】_第1张图片

 Spark和MapReduce的比较(包含磁盘内存,算子,粗粒度资源申请和细粒度资源申请)【文字说明原理+图片】_第2张图片

你可能感兴趣的:(Spark和MapReduce的比较(包含磁盘内存,算子,粗粒度资源申请和细粒度资源申请)【文字说明原理+图片】)