1.复杂的批量处理(Batch Data Processing),偏重点在于处理海量数据的能
力,至于处理速度可忍受,通常的时间可能是在数十分钟到数小时;
2.基于历史数据的交互式查询(Interactive Query),通常的时间在数十秒到
数十分钟之间
3.基于实时数据流的数据处理(Streaming Data Processing),通常在数百毫
秒到数秒之间
目前对以上 三种场景 需求都有比较 成熟的处 理框架, 第一 种情况可以用
Hadoop 的 MapReduce 来进行批量海量数据处理,第二种情况可以 Impala 进
行交互式查询,对于第三中情况可以用 Storm 分布式处理框架处理实时流式数据。
以上三者都是比较独立,各自一套维护成本比较高,而 Spark 的出现能够一站式
平台满意以上需求。
通过以上分析,总结 Spark 场景有以下几个:
lSpark 是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。
需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算
密集度较大的场合,受益就相对较小
l 由于 RDD 的特性,Spark 不适用那种异步细粒度更新状态的应用,例如 web 服
务的存储或者是增量的 web 爬虫和索引。就是对于那种增量修改的应用模型不适
合
l 数据量不是特别大,但是要求实时统计分析需求
1.4Spark 演进时间表
演进时间表:
l2009 年由 Berkeley's AMPLab 开始编写最初的源代码
l2010 年开放源代码
l2013 年 6 月进入 Apache 孵化器项目
l2014 年 2 月成为 Apache 的顶级项目(8 个月时间)
l2014 年 5 月底 Spark1.0.0 发布
l2014 年 9 月 Spark1.1.0 发布
l2014 年 12 月 Spark1.2.0 发布
目前情况:
l目前已经有 30+公司 100+开发者在提交代码
lHadoop 最大的厂商 Cloudera 宣称加大 Spark 框架的投入来取代 Mapreduce
lHortonworks
lHadoop 厂商 MapR 投入 Spark 阵营
lApache Mahout 放弃 MapReduce,将使用 Spark 作为后续算子的计算平台
%
1.5Spark 成功案例
目前大数据在互联网公司主要应用在广告、报表、推荐系统等业务上。在广告
业务方面需要大数据做应用分析、效果分析、定向优化等,在推荐系统方面则需要
大数据优化相关排名、个性化推荐以及热点点击分析等。这些应用场景的普遍特点
是计算量大、效率要求高。Spark 恰恰满足了这些要求,该项目一经推出便受到开
源社区的广泛关注和好评。并在近两年内发展成为大数据处理领域最炙手可热的开
源项目。