本文首发自个人博客:https://blog.smile13.com/articles/2018/11/27/1543334043340.html
1.Spark是什么
Spark,是一个围绕速度、易用性和复杂分析构建的通用大数据计算框架,正如传统大数据技术Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等。Spark包含了大数据领域常见的各种计算框架:比如Spark Core用于离线计算,Spark SQL用于交互式查询,Spark Streaming用于实时流式计算,Spark MLlib用于机器学习,Spark GraphX用于图计算。
2.spark体系结构
2.1 spark core
Spark Core是spark最核心的部分,包含了Spark最基本、最核心的功能,所有跟RDD有关的API都出自于Spark Core。例如,任务调度、内存管理、故障恢复、和存储系统交互等。
2.2 spark sql
Spark Sql主要用于分布式结构化数据的SQL查询和分析,用户可以在Spark环境下用SQL语言处理数据。
2.3 spark streaming
Spark Streaming是spark体系中的一个流式处理框架,它通过将流数据按指定时间片累积为RDD,然后将RDD进行批处理,进而实现大规模的流数据处理,严格意义上说Spark Streaming是一个准实时处理框架。
2.4 MLlib
MLlib是一个分布式机器学习库,在Spark平台上对一些常用的机器学习算法进行分布式实现,支持分类、回归、聚类、协同过滤、降维等等机器学习问题,同时还包括底层的优化原语和高层的管道API。
2.5 GraphX
GraphX是一个分布式图处理框架,在Spark上实现了大规模图计算的功能,提供了对图计算和图挖掘的各种接口。
3.Spark的特点
4.spark版本变迁
2009:spark诞生于UCBerkeley的AMP实验室。
2010:spark正式对外开源。
2012-10-15:spark0.6.0版本发布,进行了大范围的性能改进,增加了一些新特性,并对standalone部署模式进行了简化。
2013-02-07:spark0.6.2版本发布,解决了一些bug,并增强了系统的可用性。
2013-02-07:spark0.7.0版本发布,增加了更多关键特性,例如,Python API,spark streaming的alpha版本等。
2013-06-02:spark0.7.2版本发布,性能改进并解决了一些bug,新增API使用的例子。
2013-06-21:spark接受进入Apache孵化器。
2013-07-16:spark0.7.3版本发布,解决了一些bug,更新spark streaming API等。
2013-09-25:spark0.8.0版本发布,一些新功能及可用性改进。
2013-12-19:spark0.8.1版本发布,支持scala2.9、YARN2.2、Standalone部署模式下调度的高可用性、shuffle的优化等。
2014-02-02:spark0.9.0版本发布,增加了GraphX,机器学习新特性,流式计算新特性,核心引擎(外部聚合、加强对YARN的支持)等。
2014-04-09:spark0.9.1版本发布,增强使用YARN的稳定性,改进Scala和Python API的奇偶性。
2014-05-30:spark1.0.0版本发布,Spark SQL、MLlib、GraphX和Spark Streaming都增加了新特性并进行了优化。Spark核心引擎增加了对安全YARN集群的支持。
2014-07-11:spark1.0.1版本发布,增加了Spark SQL的新特性和对Json数据的支持等。
2014-08-05:spark1.0.2版本发布,Spark核心API及Streaming、Python、MLlib的bug修复。
2014-09-11:spark1.1.0版本发布。
2014-11-26:spark1.1.1版本发布,Spark核心API及Streaming、Python、SQL、GraphX和MLlib的bug修复。
2014-12-18:spark1.2.0版本发布。
2015-02-09:spark1.2.1版本发布,Spark核心API及Streaming、Python、SQL、GraphX和MLlib的bug修复。
2015-03-13:spark1.3.0版本发布。
2015-06-11:spark1.4.0版本发布。
2015-07-15:spark1.4.1版本发布,DataFrame API及streaming、Python、SQL和MLlib的不过修复。
2015-09-07:spark欧洲峰会议程公布,包括Barclays, Netflix, Elsevier, Intel等38个公司进行了会谈。
2015-09-09:Spark1.5.0版本发布,这是spark有史以来最大的发布,有230名开发人员贡献超过1400次提交。
2015-10-02:spark1.5.1版本发布,DataFrame API,Spark Streaming,PySpark,R,Spark SQL和MLlib的bug修复。
2015-10-14:第二届spark峰会开放演讲资料提交,活动将于2016年2月16日至18日在纽约举行。
2015-11-09:spark1.5.2版本发布,DataFrame API,Spark Streaming,PySpark,R,Spark SQL和MLlib的bug修复。
2015-11-19:第二届spark峰会演讲资料提交即将结束,活动将于2016年2月16日至18日在纽约举行。
2016-01-04:spark1.6.0版本发布,spark社区持续增长,有248位developers。
2016-01-14:spark summit east议程公布,其中包括来自Netflix,Comcast,Blackrock,Bloomberg等组织的60场演讲。第二届年度Spark Summit East将于2月16日至18日在纽约举行,届时将有众多的演讲者以及Spark培训机会。
2016-03-09:spark1.6.1版本发布,修复了一些bug,更新Dataset API。
2016-05-26:spark2.0预览版发布,为spark2.0版本发布做准备。
2016-06-25:Spark1.6.2版本发布。
2016-07-26:spark2.0.0版本发布。
2016-10-03:spark2.0.1版本发布。
2016-11-07:spark1.6.3版本发布,多个bug修复。
2016-11-14:spark2.0.2版本发布,多个bug修复,增加对kafka0.10的支持,新增Structured Streaming。
2016-12-28:spark2.1.0版本发布,这是 2.x 版本线的第二个发行版。
2017-05-02:spark2.1.1版本发布。
2017-07-11:saprk2.2.0版本发布,这也是 2.x 系列的第三个版本。此版本移除了 Structured Streaming 的实验标记,意味着已可以放心在线上使用,这个版本更注重可用性、稳定性和润色,解决了1100多个问题。同时,Pyspark支持在pypi中使用。
2017-10-09:Spark2.1.2版本发布。
2017-12-01:spark2.2.1版本发布。
2018-02-28:spark2.3.0版本发布,这也是 2.x 系列的第四个版本。这个版本增加了对Structured Streaming实时流处理的支持,以及一个全新的Kubernetes调度器后端,以及PySpark性能优化。
2018-06-08:spark2.3.1版本发布。
2018-06-29:spark2.1.3版本发布。
2018-07-02:spark2.2.2版本发布。
2018-09-24:spark2.3.2版本发布。
2018-11-02:spark2.4.0版本发布。这也是 2.x 系列的第五个版本。该版本增加了Barrier Execution Mode,以便更好地与深度学习框架集成,改进了K8S的集成,以及实验性的支持scala2.12。其他主要更新包括内置Avro数据源、图像数据源、灵活的流式接收、消除传输期间2GB块大小限制、panda UDF改进等。
更多spark版本变迁信息请移步官网:http://spark.apache.org/news/index.html
版权声明:本文为博主原创文章,转载请注明出处!