MapReduce的不足
只有两种操作,表达能力欠缺,复杂的计算实现难度大
Job的结果保存在HDFS
迭代式计算性能比较差
延时高,只适合批处理计算,交互式、实时数据处理支持不够
spark的产生是直击之前的传统的基于分布式的计算框架MapReduce的一些缺点而设计的:
1、数据重用在许多迭代的机器学习计算里边或者是图像计算里面,这里举了几个机器学习经典的例子:PageRank、K-means、逻辑回归
2、交互式的数据挖掘。要求你的计算框架反应速度快。
这些恰恰就是MapReduce的弱项;MapReduce的作业是面向批处理。
中文版 http://blog.youkuaiyun.com/u012319493/article/details/53284358
Speed
Ease of Use
1、提供Scala、Java、Python、R的编程接口
2、提供了很多的高层API,简化应用编写难度
3、提供了交互的编码环境
(spark-shell)
Generality
Runs Everywhere
1、支持standalone cluster mode、on EC2、on Hadoop YARN、on Apache Mesos
2、可访问许多的数据源,包括HDFS、S3、Cassandra、HBase、Hive、Tachyon… …
-
2009年,诞生于伯克利大学AMPLab,完全开源的项目,相较于其他大数据平台或框架而言,Spark社区最为活跃
-
Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小
-
由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。对于增量修改的应用模型不适合
-
Spark的适用面比较广泛且比较通用