赞
踩
1、产生背景
- 1、产生背景:
- MapReduce的差劲促使了spark的产生。
- 1)编程:
- MR只有只提供给map和reduce方法处理数据,而spark中提供了80多个。
- 这对编程产生了质的影响:
- 就比如对于一个wordcount,既要写Map,又要写Reduce和驱动类。
- 而spark只需要一个类就可以解决,运用scala开发设置一行代码就可以搞定。
- 2)task级别:
- MR中每一个maptask和reducetask都是进程,进程启动和销毁要花大量的时间。
- spark的task基于线程,在每一个executor中都有一个线程池。
- 3)资源申请
- 在MR中,每个job的maptask和reducetask都需要单独的申请资源 ,资源反复申请很耗时。
- 在spark中,无论一个应用程序有多少个job,只需要申请一次资源即可。
- ##当然,spark资源的释放要所有job执行完才可以。
- 4)IO
- MR基于磁盘,Spark基于内存。所以这就造成了IO上的差异。
- MR的I/O频繁,比如Mapper和Reducer读取、溢写、merge、结果输出、shuffle、combiner
- spark的I/O较少,数据读取、结果输出,可能存在的shuffle及持久化
- 综上:
- 理想情况下,一次MR4次IO,一次spark 作业两次IO
- IO是很昂贵的操作,耗时间耗性能&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。