打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

2018年09月05日 20:09:05 wyqwilliam 

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 是细粒度的资源调度。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
大数据计算新贵Spark在腾讯雅虎优酷成功应用解析
Spark架构与运行流程
大数据处理平台比较与分析
Spark及其生态圈简介
RDD:基于内存集群计算的容错抽象 | 简单之美
程序员看这里!老司机教你如何利用Spark完成数据变现项目
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服