对于一个具有相当技术门槛与复杂度的平台,Spark从诞生到正式版本的成熟,经历的时间如此之短,让人感到惊诧。2009年,Spark诞生于伯克利大学AMPLab,最开初属于伯克利大学的研究性项目。它于2010年正式开源,并于2013年成为了Aparch基金项目,并于2014年成为Aparch基金的顶级项目,整个过程不到五年时间。

下面点滴记录 Spark 的版本发展过程。

  • now
  • 2018-02-28,Spark 2.3.0发布
    • 这也是 2.x 系列中的第四个版本。此版本增加了对 Structured Streaming 中的 Continuous Processing 以及全新的 Kubernetes Scheduler 后端的支持。其他主要更新包括新的 DataSource 和 Structured Streaming v2 API,以及一些 PySpark 性能增强。此外,此版本继续针对项目的可用性、稳定性进行改进,并持续润色代码。
    • 具体参见:
      1. Apache Spark 2.3.0 正式发布
      2. Apache Spark 2.3.0 重要特性介绍
  • 2017-12-01,Spark 2.2.1发布
  • 2017-10-09,Spark 2.1.2发布
  • 2017-07-11,Spark 2.2.0发布
    • 这也是 2.x 系列的第三个版本。此版本移除了 Structured Streaming 的实验标记(experimental tag),意味着已可以放心在线上使用。
    • 该版本的主要更新内容主要针对的是系统的可用性、稳定性以及代码润色。包括:
      1. Core 和 Spark SQL 的 API 升级和性能、稳定性改进,比如支持从 Hive metastore 2.0/2.1 中读取数据;支持解析多行的 JSON 或 CSV 文件;移除对 Java 7 的支持;移除对 Hadoop 2.5 及更早版本的支持 等
      2. SparkR 针对现有的 Spark SQL 功能添加了更广泛的支持,比如 Structured Streaming 为 R 语言提供的 API ;R 语言支持完整的 Catalog API ;R 语言支持 DataFrame checkpointing 等
    • 具体参见:
      1. Apache Spark 2.2.0 正式发布
      2. Apache Spark 2.2.0 新特性详细介绍
  • 2017-05-02,Spark 2.1.1发布
  • 2016-12-28,Spark 2.1.0发布
    • 这是 2.x 版本线的第二个发行版。此发行版在为Structured Streaming进入生产环境做出了重大突破,Structured Streaming现在支持了event time watermarks了,并且支持Kafka 0.10。此外,此版本更侧重于可用性,稳定性和优雅(polish),并解决了1200多个tickets。
  • 2016-11-24,Spark 2.0.2发布
  • 2016-11-07,Spark 1.6.3发布
  • 2016-10-03,Spark 2.0.1发布
  • 2016-07-26,Spark 2.0.0发布
    • 该版本主要更新APIs,支持SQL 2003,支持R UDF ,增强其性能。300个开发者贡献了2500补丁程序。
  • 2016-06-25,Spark 1.6.2发布
  • 2016-03-09,Spark 1.6.1发布
  • 2016-01-04,Spark 1.6.0发布
    • 该版本含了超过1000个patches,在这里主要展示三个方面的主题:新的Dataset API,性能提升(读取Parquet 50%的性能提升,自动内存管理,streaming state management十倍的性能提升),以及大量新的机器学习和统计分析算法。
    • 在Spark1.3.0引入DataFrame,它可以提供high-level functions让Spark更好的处理数据结构和计算。这让Catalyst optimizer 和Tungsten execution engine自动加速大数据分析。发布DataFrame之后开发者收到了很多反馈,其中一个主要的是大家反映缺乏编译时类型安全。为了解决这个问题,Spark采用新的Dataset API (DataFrame API的类型扩展)。Dataset API扩展DataFrame API支持静态类型和运行已经存在的Scala或Java语言的用户自定义函数。对比传统的RDD API,Dataset API提供更好的内存管理,特别是在长任务中有更好的性能提升。
  • 2015-11-02,Spark 1.5.2发布
  • 2015-10-06,Spark 1.5.1发布
  • 2015-09-09,Spark 1.5.0发布
    • Spark 1.5.0是1.x线上的第6个发行版。这个版本共处理了来自230+contributors和80+机构的1400+个patches。
    • Spark 1.5的许多改变都是围绕在提升Spark的性能、可用性以及操作稳定性。
    • Spark 1.5.0焦点在Tungsten项目,它主要是通过对低层次的组建进行优化从而提升Spark的性能。
    • Spark 1.5版本为Streaming增加了operational特性,比如支持backpressure。另外比较重要的更新就是新增加了一些机器学习算法和工具,并扩展了Spark R的相关API。
  • 2015-07-15,Spark 1.4.1发布
    • DataFrame API及Streaming,Python,SQL和MLlib的bug修复
  • 2015-06-11,Spark 1.4.0发布
    • 该版本将 R API 引入 Spark,同时提升了 Spark 的核心引擎和 MLlib ,以及 Spark Streaming 的可用性。
  • 2015-03-13,Spark 1.3.0发布
    • 该版本发布的最大亮点是新引入的DataFrame API,对于结构型的DataSet,它提供了更方便更强大的操作运算。。除了DataFrame之外,还值得关注的一点是Spark SQL成为了正式版本,这意味着它将更加的稳定,更加的全面。
  • 2015-02-09,Spark 1.2.1发布
    • Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修复
  • 2014-12-18,Spark 1.2.0发布
  • 2014-11-26,Spark 1.1.1发布
    • Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修复
  • 2014-09-11,Spark 1.1.0发布
  • 2014-08-05,Spark 1.0.2发布
    • Spark核心API及Streaming,Python,MLlib的bug修复
  • 2014-07-11,Spark 1.0.1发布
    • 增加了Spark SQL的新特性和堆JSON数据的支持等
  • 2014-05-30,Spark 1.0.0发布
    • 增加了Spark SQL、MLlib、GraphX和Spark Streaming都增加了新特性并进行了优化。Spark核心引擎还增加了对安全YARN集群的支持
  • 2014-04-09,Spark 0.9.1发布
    • 增加使用YARN的稳定性,改进Scala和Python API的奇偶性
  • 2014-02-02,Spark 0.9.0发布
    • 增加了GraphX,机器学习新特性,流式计算新特性,核心引擎优化(外部聚合、加强对YARN的支持)等
  • 2013-12-19,Spark 0.8.1发布
    • 支持Scala 2.9,YARN 2.2,Standalone部署模式下调度的高可用性,shuffle的优化等
  • 2013-09-25,Spark 0.8.0发布
    • 一些新功能及可用性改进
  • 2013-07-16,Spark 0.7.3发布
    • 一些bug的解决,更新Spark Streaming API等
  • 2013-06-21,Spark接受进入Apache孵化器
  • 2013-06-02,Spark 0.7.2发布
  • 2013-02-27,Spark 0.7.0发布
    • 增加了更多关键特性,例如:Python API、Spark Streaming的alpha版本等
  • 2013-02-07,Spark 0.6.2发布
    • 解决了一些bug,并增强了系统的可用性
  • 2012-10-15,Spark 0.6.0发布
    • 大范围的性能改进,增加了一些新特性,并对Standalone部署模式进行了简化
  • 2010 ,Spark正式对外开源
  •  ,Spark诞生于UCBerkeley的AMP实验室

Spark的历史与发展(目录)的更多相关文章

  1. spark 累加历史 + 统计全部 + 行转列

    spark 累加历史主要用到了窗口函数,而进行全部统计,则需要用到rollup函数 1  应用场景: 1.我们需要统计用户的总使用时长(累加历史) 2.前台展现页面需要对多个维度进行查询,如:产品.地 ...

  2. OpenGL的版本号历史和发展

    来源请注明.本文永久地址为http://www.cnblogs.com/vertexshader/articles/2917540.html OpenGL®作为业界最为广泛使用的2D和3D图形接口标准 ...

  3. Java的历史及发展

    Java之父:詹姆斯·高斯林 (James Gosling) Java自1995诞生,至今已经20多年的历史. Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语 ...

  4. Spark 官方博文专区(目录)

    关于转载一些 Spark 官方的文档以及 DataBricks 公司博文,本系列基本是中英双语,主要是为了提高自己的英语水平. 文章分类 spark databricks A Tale of Thre ...

  5. Spark 精品文章转载(目录)

    学习 Spark 中,别人整理不错的文章,转载至本博客,方便自己学习,并按照不同的模块归档整理.每个文章作者能力不同,写文章所处的时间点不同,可能会略有差异,在阅读的同时,注意当时的文章的内容是否已经 ...

  6. 使用shell巧妙高效的批量删除历史文件或目录

    背景:有实时产生的数据按小时分文件保存,如“/data/2013/09/18/14.txt”.现需要保留30天的最新数据,而删除所有其它的历史数据.注意“保留30天的最新数据”,可能不是连续的30天, ...

  7. 掌握Spark机器学习库(课程目录)

    第1章 初识机器学习 在本章中将带领大家概要了解什么是机器学习.机器学习在当前有哪些典型应用.机器学习的核心思想.常用的框架有哪些,该如何进行选型等相关问题. 1-1 导学 1-2 机器学习概述 1- ...

  8. MapReduce Shuffle 和 Spark Shuffle 原理概述

    Shuffle简介 Shuffle的本意是洗牌.混洗的意思,把一组有规则的数据尽量打乱成无规则的数据.而在MapReduce中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规 ...

  9. Spark 安装部署与快速上手

    Spark 介绍 核心概念 Spark 是 UC Berkeley AMP lab 开发的一个集群计算的框架,类似于 Hadoop,但有很多的区别. 最大的优化是让计算任务的中间结果可以存储在内存中, ...

随机推荐

  1. 洛谷 P2814 家谱(gen)

    题目背景 现代的人对于本家族血统越来越感兴趣. 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先. 输入输出格式 输入格式: 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组 ...

  2. Java 作业 二

    编写一个Java应用程序,统计数组{1,3,4,7,2,1,1,5,2,5,7,2,1,1,3},统计显示每种数字其出现的次数以及出现最多和最少次数的数字. package hi; public cl ...

  3. 解决VS Code开发Python3语言自动补全功能不带括号的问题

    Visual Studio Code(以下简称VS Code)用来开发Python3,还是很便利的,本身这个IDE就是轻量级的,才几十兆大小,通过安装插件的方式支持各种语言的开发.界面也美美哒,可以在 ...

  4. (转自知乎)Unicode编码

    很多人都把Unicode编码挂在嘴边,其实咱们现实生活中遇到的编码基本都是Unicode的 因为Unicode兼容了大多数老版本的编码规范例如 ASCII Unicode编码定义了这个世界上几乎所有字 ...

  5. Bridges: The Final Battle

    对修改操作按时间分治,设$solve(l,r,n,m)$为考虑时间在$[l,r]$的修改操作,作用范围是$n$个点,$m$条边的图. 若$l=r$,则暴力Tarjan统计桥边个数即可. 否则提取出$[ ...

  6. BZOJ1515 : [POI2006]Lis-The Postman

    首先,如果这个图本身就不存在欧拉回路,那么显然无解. 对于每个子串: 1.如果里面有不存在的边,那么显然无解. 2.如果里面有一条边重复出现,那么显然也无解. 3.对于每条边,维护其前驱与后继,若前驱 ...

  7. JavaScript之中Array用法的一些技巧总结

    1.创建一个全部为0,长度为100的数组(ES6) Array(10).fill(0) 2.创建一个长度为100的数组,其中保存0 ~ 99 let array = Array(100).fill(0 ...

  8. yii2小部件(widget)

    一.创建一个简单的小部件 namespace common\components; //common需要自己先设定一个别名 use yii\base\Widget; //小部件需要继承的基类 use ...

  9. hihocoder1051 补提交卡(贪心)

    http://hihocoder.com/problemset/problem/1051 一开始dfs暴搜超时 这题关键在于理解到,肯定是补连续的几天.所以说写贪心之前要好好想想,怎么贪. //补题卡 ...

  10. PowerBI发布到网页

    如果网页当中需要嵌入PowerBI的报表,可以在PowerBI当中生成链接,然后网页或者博客当中插入这一段html代码. 以下是PowerBI生产网页链接的示例,并且在博客的最后也插入了PowerBI ...