spark比mapreduce快的yuanyin

  1. spark是基于内存计算的,而mapreduce会将数据暂存在文件系统中,增加了可靠性但降低了性能
  2. DAG有向无环图,spark的有向无环图可以减少shuffle,在不需要其他节点数据的情况下(窄依赖),spark可以在不落盘的情况下对数据进行连续计算,当遇上宽依赖时,spark也会需要将数据落盘。这也是spark比mapreduce快的根本原因,有些人说根本原因是因为spark是基于内存计算的,但就是因为DAG的机制才让spark更好的使用内存计算机制。
  3. spark是粗粒度的资源申请,在application启动之前资源就已经申请完成,task可以直接运行,启动更快,运行也就更快了,不过申请的资源需要等到最后一个task执行完成后才会释放,集群资源得不到充分利用。
    mapreduce是细粒度资源申请的,在task执行时自己申请资源,这样task启动就会比较慢,但task运行完成后资源就会被释放,集群资源利用率更高。

你可能感兴趣的:(spark,mapreduce,大数据)