Spark相对于MapReduce的优势

来源:互联网 发布:mysql怎么卸载干净 编辑:程序博客网 时间:2024/05/16 01:12

Spark是类Hadoop MapReduce的通用的并行计算框架,但不同于MapReduce的是Job中间输出和结果可以保存在内存中,也就是说spark是基于内存计算的,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法

这里简单说一下对spark相对于mapreduce的优势:

1.中间结果:
传统的MapReduce虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型(由于每一次MapReduce的输入/输出数据,都需要读取/写入磁盘当中,如果涉及到多个作业流程,就意味着多次读取和写入HDFS),使得在迭代计算式要进行大量的磁盘IO操作
RDD抽象出一个被分区、不可变、且能并行操作的数据集;从HDFS读取的需要计算的数据,在经过处理后的中间结果会作为RDD单元缓存到内存当中,并可以作为下一次计算的输入信息。最终Spark只需要读取和写入一次HDFS,这样就避免了Hadoop MapReduce的大IO操作

2.执行策略:
MapReduce在数据shuffle之前需要进行排序,而spark不需要对所有场景进行排序,这也就加快了spark的计算速度

3.更好的容错性:
spark中RDD之间维护了血缘关系,一旦某个RDD失败了,就能通过父类RDD自动重建,保证了容错性

4.spark更适合做实时流处理
MapReduce 更 加 适 合 处 理 离 线 数 据( 当 然, 在 YARN 之 后,Hadoop也可以借助其他工具进行流式计算)。Spark 很好地支持实时的流计算,依赖Spark Streaming 对数据进行实时处理。Spark Streaming 具备功能强大的 API,允许用户快速开发流应用程序。

5.易用性
spark的代码量比mapreduce少的多

6.spark的社区非常活跃
Spark 非常重视社区活动,组织也极为规范,会定期或不定期地举行与 Spark相关的会议。会议分为两种 :一种是 Spark Summit,影响力极大,可谓全球 Spark顶尖技术人员的峰会,目前已于 2013—2015 年在 San Francisco 连续召开了三届Summit 大会 ;另一种是 Spark 社区不定期地在全球各地召开的小型 Meetup 活动。Spark Meetup 也会在我国的一些大城市定期召开