Spark 有 4 中运行模式:
1. local 模式,适用于测试
2. standalone,并非是单节点,而是使用 spark 自带的资源调度框架
3. yarn,最流行的方式,使用 yarn 集群调度资源
4. mesos,国外使用的多
Spark 比 MapReduce 快的原因
1. Spark 基于内存迭代,而 MapReduce 基于磁盘迭代
MapReduce 的设计:中间结果保存到文件,可以提高可靠性,减少内存占用,但是牺 牲了性能。
Spark 的设计:数据在内存中进行交换,要快一些,但是内存这个东西,可靠性比不过 MapReduce。
2. DAG 计算模型在迭代计算上还是比 MR 的更有效率。 在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是 一个有向无环图(DAG)
DAG 计算模型在 Spark 任务调度中详解! Spark 计算比 MapReduce 快的根本原因在于 DAG 计算模型。
一般而言,DAG 相比 MapReduce 在大多数情况下可以减少 shuffle 次数。Spark 的 DAGScheduler 相当于一个改进 版的 MapReduce,如果计算不涉及与其他节点进行数据交换,Spark 可以在内存中一次性 完成这些操作,