Spark是在MapReduce基础上产生的,它克服了MapReduce存在的性能低下、编程不够灵活等缺点。Spark作为一种DAG计算框架,其主要特点如下:
1、性能高效
其性能高效主要体现在以下几个方面:
- 内存计算引擎:Spark允许用户将数据放到内存中以加快数据读取,进而提高数据处理性能。Spark提供了数据抽象RDD,它使得用户可将数据分布到不同节点上存储,并选择存储到内存或磁盘,或内存磁盘混合存储。
- 通用DAG计算引擎:相比于MapReduce这种简单的两阶段计算引擎,Spark则是一种更加通用的DAG引擎,它使得数据可通过本地磁盘或内存流向不同计算单元而不是(像MapReduce那样)借助低效的HDFS。
- 性能高效:Spark是在MapReduce基础上产生的,借鉴和重用了MapReduce众多已存在组件和设计思想,包括基于InputFormat和OutputFormat的读写组件、Shuffle实现、推测执行优化机制等,同时又引入了大量新颖的设计理念,包括允许资源重用、基于线程池的Executor、无排序Shuffle、通用DAG优化和调度引擎等。据有关测试结果表明,在相同资源消耗的情况下,Spark比MapReduce快几倍到几十倍。
2、简单易用
不像MapReduce那样仅仅局限于Mapper、Partitioner和Reducer等几种低级API,Spark提供了丰富的高层次API,包括sortByKey、groupByKey、cartesian(求笛卡尔积)等。为方便不同编程语言喜好的开发者,Spark提供了四种语言的编程API:Scala、Python、Java和R。从代码量方面比较,实现相同功能模块,Spark比MapReduce少2~5倍。
3、与Hadoop完好集成
Hadoop发展到现在,已经成为大数据标准解决方案,涉及数据收集、数据存储、资源管理以及分布式计算等一系列系统,它在大数据平台领域的地位不可撼动。Spark作为新型计算框架,将自己定位为除MapReduce等引擎之外的另一种可选的数据分析引擎,它可以与Hadoop进行完好集成:可以与MapReduce等类型的应用一起运行在YARN集群,读取存储在HDFS/HBase中的数据,并写入各种存储系统中。
总之,Spark以上有别于MapReduce的特点,使得它在数据分析、数据挖掘和机器学习等方面得到广泛的应用,Spark已经取代MapReduce成为应用最广泛的大数据计算引擎,而基于MapReduce实现的开源机器学习库Mahout[插图]也已经迁移到Spark或Flink等新型DAG计算平台上。
标签:DAG,MapReduce,特点,引擎,概述,内存,计算,Spark From: https://blog.51cto.com/key3feng/6145996