spark的四种模式,spark比MapReduce快的原因

Spark 是美国加州大学伯克利分校的 AMP 实验室(主要创始人 lester 和 Matei)开发的
通用的 大数据处理框架。
  Apache Spark™ is a fast and general engine for large-scale data processing.
  Apache Spark is an open source cluster computing system that aims to make data analytics
fast,both fast to run and fast to wrtie
Spark 应用程序可以使用 R 语言、Java、Scala 和 Python 进行编写,极少使用 R 语言
编写 Spark 程序,Java 和 Scala 语言编写的 Spark 程序的执行效率是相同的,但 Java 语言写
的代码量多,Scala 简洁优雅,但可读性不如 Java,Python 语言编写的 Spark 程序的执行效
率不如 Java 和 Scala。
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 可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘 IO 的操作。但是,如果计算过程中涉及数据交换,Spark 也是会把 shuffle 的数据写磁盘的!有一个误区,Spark 是基于内存的计算,所以快,这不是主要原因,要对数据做计算,必然得加载到内存,Hadoop 也是如此,只不过 Spark 支持将需要反复用到的数据给 Cache 到内存中,减少数据加载耗时,所以 Spark 跑机器学习算法比较在行(需要对数据进行反复迭代)。Spark 基于磁盘的计算也是比 Hadoop 快。刚刚提到了 Spark 的 DAGScheduler 是个改进版的 MapReduce,所以 Spark天生适合做批处理的任务。Hadoop 的 MapReduce 虽然不如 spark 性能好,但是 HDFS 仍然是业界的大数据存储标准。
3. Spark 是粗粒度的资源调度,而 MR 是细粒度的资源调度。 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值