Spark 教程

2020-08-28 15:04:02 | 编辑 | 添加

1.Spark 介绍

Spark起源于2009年,是美国加州大学伯克利分校AMP实验室的一个研究性项目。Spark于2010年开源,是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台,是Apache软件基金会所有开源项目中三大顶级开源项目之一。


Spark是用Scala语言写成的一套分布式内存迭代计算系统,它的核心抽象概念是弹性分布式数据集( Resilient Distributed Dataset, RDD), 在“One Stack to rule them all" (一个技术堆栈容纳各种数据处理技术)理念的指引下,Spark 基于RDD成功地构建起了大数据处理的一体化解决方案,将MapReduce、Streaming、 SQL、 Machine Learming、 Graph Process-ing等大数据计算模型统一到一个技术堆栈中,开发者可以使用同样的API操作Spark中的所有功能。


更为重要的是,Spark 的Spark SQL、MLLib、 GraphX、 Spark Streaming 等四大子框架(在Spark 1.4版本中,加入了新的SparkR子框架)之间可以在内存中完美的无缝集成并可以互相操作彼此的数据,这不仅打造了Spark在当今大数据计算领域相比其他任何计算框架具备的无可匹敌的优势,更使得Spark正在加速成为大数据处理中心首选的和唯一的计算平台。

目前,Spark 已经发展成为包含众多子项目的大数据计算平台。Spark 的整个生态系统称为伯克利数据分析栈( BDAS)。其核心框架是Spark,同时BDAS涵盖支持结构化数据SQL查询与分析的查询引擎Spark SQL,提供具有机器学习功能的系统MILbase 及底层的分布式机器学习库MLlib、并行图计算框架GraphX、流计算框架Spark Streaming、 采样近似计算查询引擎BlinkDB、内存分布式文件系统Tachyon、资源管理框架Mesos等子项目。这些子项目在Spark上提供了更高层、更丰富的计算范式。

随着Spark社区的不断成熟,它已被广泛应用于阿里巴巴、百度、网易、英特尔等各大公司的生产环境中。

 

2.披荆斩棘-无可替代的优势

在任何规模的数据计算中,Spark在性能和扩展性上都更具优势。


(1)Hadoop之父Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline,replaced by Apache Spark(大数据项目的MapReduce引擎的使用将下降,由Apache Spark取代。)


(2)Hadoop商业发行版本的市场领导者Cloudera、HortonWorks、MapR纷纷转投Spark,并把Spark作为大数据解决方案的首选和核心计算引擎。
        2014年的Sort Benchmark测试中,Spark秒杀Hadoop,在使用十分之一计算资源的情况下,相同数据的排序上,Spark 比 MapReduce快3倍!在没有官方PB排序对比的情况下,首次将Spark推到了1PB数据(十万亿条记录)的排序,在使用190个节点的情况下,工作负载在4小时内完成,同样远超雅虎之前使用3800台主机耗时16个小时的记录。

       2015年6月,Spark最大的集群来自腾讯———8000个节点,单个Job最大分别是阿里巴巴和Databricks—1PB,震撼人心!同时,Spark的 Contributor比 2014年涨了3倍,达到730人;总代码行数也比2014年涨了2倍多,达到40万行。IBM于2015年6月承诺大力推进Apache Spark项目,并称该项目为:以数据为主导的,未来十年最重要的新的开源项目。这一承诺的核心是将Spark嵌入IBM业内领先的分析和商务平台,并将Spark作为一项服务,在IBMBluemix平台上提供给客户。IBM还将投入超过3500名研究和开发人员在全球10余个实验室开展与Spark相关的项目,并将为Spark开源生态系统无偿提供突破性的机器学习技术——IBM SystemML。同时,IBM 还将培养超过100万名Spark数据科学家和数据工程师。

       2016年,在有“计算界奥运会”之称的国际著名Sort Benchmark全球数据排序大赛中,由南京大学计算机科学与技术系PASA大数据实验室、阿里巴巴和 Databricks公司组成的参赛团队NADSort,以144美元的成本完成100TB标准数据集的排序处理,创下了每TB数据排序1.44美元成本的最新世界纪录,比2014年夺得冠军的加州大学圣地亚哥分校TritonSort团队每TB数据4.51美元的成本降低了近70%,而这次比赛依旧使用Apache Spark大数据计算平台,在大规模并行排序算法以及Spark系统底层进行了大量的优化,以尽可能提高排序计算性能并降低存储资源开销,确保最终赢得比赛。

       在Full Stack理想的指引下,Spark中的Spark SQL、SparkStreaming、MLLb、GraphX、R五大子框架和库之间可以无缝地共享数据和操作,这不仅打造了Spark在当今大数据计算领域其他计算框架都无可匹敌的优势,而且使得Spark正在加速成为大数据处理中心首选通用计算平台,而Spark商业案例和性能优化必将成为接下来的重中之重!
 

关注编程学问公众号