设为首页 加入收藏

TOP

Spark相对于MapReduce的优势对比
2019-01-19 13:27:42 】 浏览:75
Tags:Spark 对于 MapReduce 优势 对比
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/papaaa/article/details/81738300

Spark相对于MapReduce的优势

  • MapReduce存在的问题

1. MapReduce框架局限性

  •   1)仅支持Map和Reduce两种操作

  •   2)处理效率低效。

        a)Map中间结果写磁盘,Reduce写HDFS,多个MR之间通过HDFS交换数据; 任务调度和启动开销大;
        b)无法充分利用内存
        c)Map端和Reduce端均需要排序

  •   3)不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘) 和流式处理(点击日志分析)

2. MapReduce编程不够灵活

-  1)尝试scala函数式编程语言

Spark

  • 高效(比MapReduce快10~100倍)

      1)内存计算引擎,提供Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的IO开销
      2)DAG引擎,减少多次计算之间中间结果写到HDFS的开销
      3)使用多线程池模型来减少task启动开稍,shuffle过程中避免 不必要的sort操作以及减少磁盘IO操作

  • 易用
      1)提供了丰富的API,支持Java,Scala,Python和R四种语言
      2)代码量比MapReduce少2~5倍
  • 与Hadoop集成 读写HDFS/Hbase 与YARN集成
  • 丰富的API(Java、Scala、Python、R四种语言,sort、join等高效算子)
  • DAG执行引擎,中间结果不落盘
  • 线程池模型减少task启动开销
  • 充分利用内存,减少磁盘IO
  • 避免不必要的排序操作
  • 适合迭代计算,比如机器学习算法

容错:

  • 1.当执行中途失败时,MapReduce会从失败处继续执行,因为它是依赖于硬盘驱动器的。
  • 但是Spark就必须从头开始执行,这样MapReduce相对节省了时间。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark踩坑之旅 下一篇Spark在文本统计中的简单应用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目