Spark比MapReduce快的原因

Spark比MapReduce快的原因

① Spark支持DAG

  • 每个MapReduce只有两个阶段:Map、Reduce
  • Spark支持DAG,可以有任意多个阶段

② Spark的Shuffle更智能

  • MR的Shuffle过程一定会经过分区、排序、分组这几个过程
  • Spark有多种Shuffle机制,过程不是固定的,灵活选择

③ Spark的Task是线程级别

  • MR将Task分为两种进程:MapTask进程结束,再启动ReduceTask进程【JVM重用】
  • Spark的进程只有一种,只申请一次,所有任务都以Task的方式直接分配在进程中运行
区别 MapReduce Spark
计算流程结构 1个Map +1个Reduce,每步结果都必须进入磁盘 支持DAG,一个程序中可以有多个Map、Reduce过程,多个Map之间的操作可以直接在内存中完成
Shuffle 过程 分区、排序、分组 会根据具体的操作来经过不同的过程
Task运行方式 进程:MapTask、ReduceTask 进程只启动一次:所有Task都以线程方式存在,不需要频繁启动、申请资源

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