谁能讲清楚Spark之与MapReduce的对比

我们已经知道Spark是如何设计和实现数据处理流程的,这里我们 再深入思考一下,为什么Spark能够替代MapReduce成为主流的大数据处理框架呢?对比MapReduce,Spark究竟有哪些优势?

一 优势

1 通用性:

        基于函数式编程思想,MapReduce将数据类型抽象为,k,v格式,并将数据处理操作抽象为map()和 reduce()两个算子,这两个算子可以表达一大部分数据处理任务。因 此,MapReduce为这两个算子设计了固定的处理流程map—Shuffle—reduce。
        但到数据处理流程其实多种多样,map—Shuffle—reduce模式只适用于表达类似foldByKey()、 reduceByKey()、aggregateByKey()的处理流程,而像cogroup()、join()、cartesian()、coalesce()的流程需要更灵活的表达方式。

Spark在两方面进行 了优化改进:

1)将输入/输出、中间数据抽象表达为一个数据结构RDD,相当于在Java中定义了class,然后可以根据不同类型的中间数据,生成不同的RDD(相当于Java中生成不同类型的object)。中间数据变得可定义、可表示、可操作、可连接。

2)通过可定义的数据依赖关系来灵活连接中间数据。在MapReduce中,数据依赖关系只有ShuffleDependency。而Spark数据处理操作包含了多种多样的数据依赖关系,Spark对这些数据依赖关系进行了分类&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值