zoukankan      html  css  js  c++  java
  • 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

    1. 高效(比MapReduce快10~100倍)

      1)内存计算引擎,提供Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的IO开销

      2)DAG引擎,减少多次计算之间中间结果写到HDFS的开销

      3)使用多线程池模型来减少task启动开稍,shuffle过程中避免 不必要的sort操作以及减少磁盘IO操作

    2. 易用

      1)提供了丰富的API,支持Java,Scala,Python和R四种语言

      2)代码量比MapReduce少2~5倍

    3. 与Hadoop集成 读写HDFS/Hbase 与YARN集成 

  • 相关阅读:
    TCP 窗口缩放、时间戳和 SACK
    对微前端的11个错误认识
    终于解决了使用Python装饰器的一个痛点
    go使用mongo
    获取鼠标当前元素
    console控制台屏蔽console
    httpx使用HTTP/2
    go解析未知结构的json
    python字典转对象
    .::Best Musica Paradisa::.
  • 原文地址:https://www.cnblogs.com/deadend/p/6710468.html
Copyright © 2011-2022 走看看