MapReduce 和 Spark 的关系是什么? 看了很多资料都讲不明白,能不能通俗一点,谢谢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anonymoustian
V2EX    Hadoop

MapReduce 和 Spark 的关系是什么? 看了很多资料都讲不明白,能不能通俗一点,谢谢

  •  
  •   anonymoustian 2016-02-24 16:31:28 +08:00 6678 次点击
    这是一个创建于 3532 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2016-02-25 16:46:35 +08:00
    newton108
        1
    newton108  
       2016-02-24 17:03:56 +08:00   1
    菜鸟来回答: Spark 用内存,比 MapReduce 用硬盘速度快。
    est
        2
    est  
       2016-02-24 17:06:40 +08:00   1
    mapreduce 是基于 hdfs 的一种姿势。本质就是处理文件。

    spark 是基于 rdd 的另一种姿势。本质是处理 data frame 。
    HunterPan
        3
    HunterPan  
       2016-02-24 17:10:46 +08:00   1
    spark 可以自动串联多个 job ,普通的 mapreduce 则需要人工
    Valyrian
        4
    Valyrian  
       2016-02-24 17:14:23 +08:00 via iPhone   1
    Spark 就是自动化 MapReduce
    anonymoustian
        5
    anonymoustian  
    OP
       2016-02-24 17:22:34 +08:00
    @est mapreduce 是 hadoop 吗?
    est
        6
    est  
       2016-02-24 17:28:14 +08:00   1
    @anonymoustian 蛤蛤,指正得对!
    swolf119
        7
    swolf119  
       2016-02-24 17:54:12 +08:00
    mapreduce 传教士
    spark 后入, 69 ,刚等
    zluyuer
        8
    zluyuer  
       2016-02-24 17:59:38 +08:00   1
    MapReduce 是一种处理数据的思路,经典实现是 Hadoop 框架,实现方式是离线批处理,也就是中间结果会写入磁盘,然后由框架的不同部分读取。 Spark 的思路与此类似,不同的是尽量在内存中存储中间结果(内存不足时也会写入磁盘),加速了计算过程。由于内存越来越廉价, Spark 代表了未来的一种趋势。另外一个区别的地方在于 Hadoop 主力语言是 Java ,而 Spark 平等兼容 Java / Scala / Python 。
    min
        9
    min  
       2016-02-24 20:46:34 +08:00   1
    google 出了个 paper 说明了 mr 的原理,但是没有放出内部的 mr 框架实现
    yahoo 按照 paper 做了 hadoop ,实现了 mr ,不过效率一般
    spark 提供了一系列 api 用来处理数据,包括了 mr , spark 做 mr 效率比 hadoop 高

    #2 楼说得不是很准确
    hdfs 是 hadoop 框架下用来存超大数据的分布式存储系统实现, spark 也可以存取 hdfs 中的数据
    spark data frame 是基于 spark rdd 的
    Landarky
        10
    Landarky  
       2016-02-24 22:05:40 +08:00
    spark 官网首页就是对比。。没有什么比它更直接了
    del1214
        11
    del1214  
       2016-02-25 09:25:12 +08:00
    @swolf119 老司机求带
    wwttc
        12
    wwttc  
       2016-02-25 10:18:49 +08:00   1
    1. MapReduce 是一个编程模型,也是一个处理超大规模数据集的算法模型实现。使用 Mapreduce 模型,用户只需实现 Map 和 Reduce 函数,就可以轻松的实现大规模并行化计算。

    2. Spark 与 Hadoop 都是大数据框架。 Spark 的大部分操作都是在内存中,而 Hadoop 的 MapReduce 任务会在每次操作之后都将数据写回到物理存储介质中。因此, Spark 的速度会比 Hadoop 快很多。 Spark 除了提供 Map 和 Reduce 操作之外,还支持 SQL 查询、流数据 Spark Streaming 、图处理 GraphX 以及常用的机器学习库 MLib 等。

    Spark 经常运行于 Hadoop 上(因为 Spark 本身并没有分布式存储系统,需要 Hadoop 的 HDFS ),可以简单理解为 Spark 可以取代 Hadoop 中的 MapReduce 。
    anonymoustian
        13
    anonymoustian  
    OP
       2016-02-25 11:28:54 +0:00
    @wwttc 请问这句话怎么理解? Spark 经常运行于 Hadoop 上 ? 既然 Spark 与 Hadoop 都是大数据框架,那么 Spark 是如何在一个大数据框架上运行另外一个大数据框架的?
    qqzj
        14
    qqzj  
       2016-02-25 12:25:25 +08:00
    @anonymoustian Hadoop 是一个数据处理框架,包含很多组件, Mapreduce 是数据处理的模型,本质上是函数式编程, HDFS 是 Hadoop 框架下的大数据存储组件,用来存储海量数据的。 Spark 是一种新的数据处理模型,在 MR 的基础上做了很多改进,但在某些情况下,如内存不足其也会退化到 MR 。 Hadoop 2.0 之后采用 Yarn 来做资源管理,将资源管理和数据计算进一步组件化,既然 MR 是一个组件,当然可以用 Spark 来替换 MR 做数据处理,所以说 Spark 运行在 Hadoop 上。现在 Spark 社区很火热,出了很多东西,做大数据的得跟进下
    m8syYID5eaas8hF7
        15
    m8syYID5eaas8hF7  
       2016-02-25 13:47:06 +08:00
    @zluyuer hadoop 不是也有其他语言的 api 的吗
    zluyuer
        16
    zluyuer  
       2016-02-25 14:52:15 +08:00
    @LINEX 只能用 Hadoop Streaming 通过 std io 桥接数据流,不是原生语言支持
    m8syYID5eaas8hF7
        17
    m8syYID5eaas8hF7  
       2016-02-25 16:46:35 +08:00
    @zluyuer 额,我一直还以为 spark 的 python api 也是用的 std io 桥接的。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3349 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:57 PVG 12:57 LAX 21:57 JFK 00:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86