Spark 1.0.0 发布

Spark 1.0.0 是一个重要的版本,标志着 1.X 系列的开始。 此版本带来了各种新功能和强大的 API 兼容性保证,贯穿整个 1.X 系列。 Spark 1.0 增加了一个新的主要组件 Spark SQL,用于在 Spark 中加载和操作结构化数据。 它包括对 Spark 所有现有标准库的重大扩展(MLStreamingGraphX),同时还增强了 Java 和 Python 中的语言支持。 最后,Spark 1.0 带来了操作改进,包括对 Hadoop/YARN 安全模型的完全支持以及对所有支持的集群管理器统一的提交过程。

您可以下载 Spark 1.0.0 作为 源代码包 (5 MB tgz) 或 Hadoop 1 / CDH3CDH4Hadoop 2 / CDH5 / HDP2 (160 MB tgz) 的预构建包。 发布签名和校验和可在官方 Apache 下载站点 获得。

API 稳定性

Spark 1.0.0 是 1.X 主要系列中的第一个版本。 Spark 保证其核心 API 在所有 1.X 版本中的稳定性。 历史上,Spark 在 API 更改方面一直非常保守,但此保证明确了我们对应用程序编写者的承诺。 该项目还清楚地注释了实验性、alpha 和开发人员 API,以便为较新组件的未来 API 更改提供指导。

与 YARN 安全集成

对于在安全的 Hadoop 环境中运行的用户,Spark 现在与 Hadoop/YARN 安全模型集成。 Spark 将验证作业提交、安全地传输 HDFS 凭据以及验证组件之间的通信。

操作和打包改进

此版本显着简化了捆绑和提交 Spark 应用程序的过程。 新的 spark-submit 工具 允许用户通过通用流程将应用程序提交到任何 Spark 集群,包括本地集群、Mesos 或 YARN。 捆绑 Spark 应用程序的文档已大大扩展。 我们还为 Spark 的 Web UI 添加了一个历史服务器,允许用户在各个应用程序完成后查看 Spark 应用程序数据。

Spark SQL

此版本引入 Spark SQL 作为一个新的 alpha 组件。 Spark SQL 支持在 Spark 中加载和操作结构化数据,可以从外部结构化数据源(当前为 Hive 和 Parquet)加载,或者通过将模式添加到现有的 RDD。 Spark SQL 的 API 与 RDD 数据模型互操作,允许用户将 Spark 代码与 SQL 语句交错。 在底层,Spark SQL 使用 Catalyst 优化器来选择有效的执行计划,并且可以自动将谓词推送到 Parquet 等存储格式中。 在未来的版本中,Spark SQL 还将为其他存储系统提供一个通用的 API。

MLlib 改进

在 1.0.0 中,Spark 的 MLlib 添加了对 Scala、Java 和 Python 中稀疏特征向量的支持。 它利用线性方法、k-means 和朴素贝叶斯中的存储和计算中的稀疏性。 此外,此版本还添加了几种新算法:用于分类和回归的可伸缩决策树、包括 SVD 和 PCA 在内的分布式矩阵算法、模型评估函数以及 L-BFGS 作为优化原语。 MLlib 编程指南 和代码示例也已大大扩展。

GraphX 和 Streaming 改进

除了可用性和可维护性改进之外,Spark 1.0 中的 GraphX 在图加载、边反转和邻域计算方面带来了显着的性能提升。 这些操作现在需要更少的通信并产生更简单的 RDD 图。 Spark 的 Streaming 模块为有状态的流转换添加了性能优化,以及改进的 Flume 支持,以及用于长时间运行作业的自动化状态清理。

扩展的 Java 和 Python 支持

Spark 1.0 在其 Java 绑定中添加了对 Java 8 新 lambda 语法 的支持。 Java 8 支持用于编写匿名函数的简洁语法,类似于 Scala 和 Python 中的闭包语法。 此更改需要对当前 Java API 的用户进行少量更改,这些更改已在文档中注明。 Spark 的 Python API 已扩展为支持几个新函数。 我们还在 Python API 中包含了一些稳定性改进,特别是对于大型数据集。 PySpark 现在也支持在 YARN 上运行。

文档

Spark 的 编程指南 已得到显着扩展,以集中涵盖所有支持的语言,并讨论开发生命周期的更多运算符和方面。 MLlib 指南 也已扩展,为每种算法提供了更多详细信息和示例,同时还改进了关于配置、YARN 和 Mesos 的文档。

较小的更改

  • PySpark 现在支持比以前更多的 Python 版本 - Python 2.6+ 而不是 2.7+,以及 NumPy 1.4+ 而不是 1.7+。
  • Spark 已升级到 Avro 1.7.6,增加了对 Avro 特定类型的支持。
  • 已添加内部检测功能,以允许应用程序监控和检测 Spark 作业。
  • 已通过特殊构建目标添加了对 Tachyon 中堆外存储的支持。
  • 使用 DISK_ONLY 持久化的数据集现在直接写入磁盘,从而显着提高了大型数据集的内存使用率。
  • Spark 作业期间创建的中间状态现在会在相应的 RDD 变为未引用时进行垃圾回收,从而提高性能。
  • Spark 现在包含所有 API 文档的 Javadoc 版本 和所有模块的 统一 Scaladoc
  • 一个新的 SparkContext.wholeTextFiles 方法允许您将小文本文件作为单独的记录进行操作。

迁移到 Spark 1.0

虽然大多数 Spark API 与 0.x 版本中的相同,但为了长期灵活性,特别是在 Java API 中(为了支持 Java 8 lambda),进行了一些更改。 该文档包括 迁移信息 以升级您的应用程序。

贡献者

以下开发人员为此版本做出了贡献

  • Aaron Davidson – 打包和部署改进、多个错误修复、local[*] 模式
  • Aaron Kimball – 文档改进
  • Abhishek Kumar – Python 配置修复
  • Ahir Reddy – PySpark 构建、修复和取消支持
  • Allan Douglas R. de Oliveira – 改进 spark-ec2 脚本
  • Andre Schumacher – Parquet 支持和优化
  • Andrew Ash – Mesos 文档和其他文档改进、错误修复
  • Andrew Or – 历史服务器(负责人)、垃圾回收(负责人)、spark-submit、PySpark 和 YARN 改进
  • Andrew Tulloch – MLlib 贡献和代码清理
  • Andy Konwinski – 文档修复
  • Anita Tailor – Cassandra 示例
  • Ankur Dave – GraphX(负责人)优化、文档和可用性
  • Archer Shao – 错误修复
  • Arun Ramakrishnan – 改进的随机抽样
  • Baishuo – 测试改进
  • Bernardo Gomez Palacio – spark-shell 改进和 Mesos 更新
  • Bharath Bhushan – 错误修复
  • Bijay Bisht – 错误修复
  • Binh Nguyen – 依赖修复
  • Bouke van der Bijl – 修复了 Mesos 上的 PySpark 和其他 Mesos 修复
  • Bryn Keller – 改进了 HBase 支持和单元测试
  • Chen Chao – 文档、错误修复和代码清理
  • Cheng Hao – Spark SQL 中的性能和功能改进
  • Cheng Lian – Spark SQL 中的列存储和其他改进
  • Christian Lundgren – 改进了 spark-ec2 脚本
  • DB Tsai – MLlib 中的 L-BGFS 优化器、MLlib 文档和修复
  • Dan McClary – 改进了统计计数器
  • Daniel Darabos – GraphX 性能改进
  • Davis Shepherd – 错误修复
  • Diana Carroll – 文档和错误修复
  • Egor Pakhomov – RDD 的本地迭代器
  • Emtiaz Ahmed – 错误修复
  • Erik Selin – 错误修复
  • Ethan Jewett – 文档改进
  • Evan Chan – 自动清理应用程序数据
  • Evan Sparks – MLlib 优化和文档改进
  • Frank Dai – MLlib 中的代码清理
  • Guoqiang Li – 构建改进和多个错误修复
  • Ghidireac – 错误修复
  • Haoyuan Li – RDD 的 Tachyon 存储级别
  • Harvey Feng – spark-ec2 更新
  • Henry Saputra – 代码清理
  • Henry Cook – Spark SQL 改进
  • Holden Karau – MLlib 中的交叉验证、Python 和核心引擎改进
  • Ivan Wick – Mesos 错误修复
  • Jey Kottalam – sbt 构建改进
  • Jerry Shao – Spark 指标和 Spark SQL 改进
  • Jiacheng Guo – 错误修复
  • Jianghan – 错误修复
  • Jianping J Wang – MLlib 中的 JBLAS 支持
  • Joseph E. Gonzalez – GraphX 改进、修复和文档
  • Josh Rosen – PySpark 改进和错误修复
  • Jyotiska NK – 文档、测试改进和错误修复
  • Kan Zhang – Spark 核心、SQL 和 PySpark 中的错误修复
  • Kay Ousterhout – 调度程序中的错误修复和代码重构
  • Kelvin Chu – 自动清理应用程序数据
  • Kevin Mader – 示例修复
  • Koert Kuipers – 代码可见性修复
  • Kousuke Saruta – 文档和构建修复
  • Kyle Ellrott – 改进了 DISK_ONLY 持久性的内存使用
  • Larva Boy – Spark SQL 中的近似计数
  • Madhu Siddalingaiah – ec2 修复
  • Manish Amde – MLlib 中的决策树
  • Marcelo Vanzin – 改进和修复了 YARN 支持、依赖清理
  • Mark Grover – 构建修复
  • Mark Hamstra – 构建和依赖项改进、调度程序错误修复
  • Margin Jaggi – MLlib 文档改进
  • Matei Zaharia – 几个 MLlib 算法的 Python 版本、spark-submit 改进、错误修复和文档改进
  • Michael Armbrust – Spark SQL(负责人),包括 RDD 的模式支持、催化剂优化器和 Hive 支持
  • Mridul Muralidharan – 代码可见性更改和错误修复
  • Nan Zhu – 错误和稳定性修复、代码清理、文档和新功能
  • Neville Li – 错误修复
  • Nick Lanham – 分发脚本中的 Tachyon 捆绑
  • Nirmal Reddy – 代码清理
  • OuYang Jin – 本地模式和 JSON 改进
  • Patrick Wendell – 发布经理,构建改进,错误修复和代码清理
  • Petko Nikolov – 新的实用函数
  • Prabeesh K – 拼写错误修复
  • Prabin Banka – 新的 PySpark API
  • Prashant Sharma – PySpark 改进,Java 8 Lambda 支持和构建改进
  • Punya Biswal – Java API 改进
  • Qiuzhuang Lian – 错误修复
  • Rahul Singhal – 构建改进,错误修复
  • Raymond Liu – YARN 构建修复和 UI 改进
  • Reynold Xin – 错误修复,内部更改,Spark SQL 改进,构建修复和样式改进
  • Reza Zadeh – MLlib 中的 SVD 实现和其他 MLlib 贡献
  • Roman Pastukhov – 广播文件清理
  • Rong Gu – RDD 的 Tachyon 存储级别
  • Sandeep Sing – 多个错误修复,MLLib 改进和 Spark 示例修复
  • Sandy Ryza – spark-submit 脚本和多个 YARN 改进
  • Saurabh Rawat – Java API 改进
  • Sean Owen – 多个构建改进,代码清理和 MLlib 修复
  • Semih Salihoglu – GraphX 改进
  • Shaocun Tian – MLlib 中的错误修复
  • Shivaram Venkataraman – 错误修复
  • Shixiong Zhu – 代码样式和正确性修复
  • Shiyun Wxm – 拼写错误修复
  • Stevo Slavic – 错误修复
  • Sumedh Mungee – 文档修复
  • Sundeep Narravula – Spark UI 中的“取消”按钮
  • Takayu Ueshin – 错误修复和 Spark SQL 改进
  • Tathagata Das – Web UI 和 Spark Streaming 的其他改进(领导者),错误修复,状态清理和发布经理
  • Timothy Chen – Spark SQL 改进
  • Ted Malaska – 改进的 Flume 支持
  • Tom Graves – Hadoop 安全集成(领导者)和 YARN 支持
  • Tianshuo Deng – 错误修复
  • Tor Myklebust – ALS 改进
  • Wangfei – Spark SQL 文档
  • Wang Tao – 代码清理
  • William Bendon – JSON 支持更改和错误修复
  • Xiangrui Meng – MLlib 的多个改进(领导者)
  • Xuan Nguyen – 构建修复
  • Xusen Yin – MLlib 贡献和错误修复
  • Ye Xianjin – 测试修复
  • Yinan Li – addFile 改进
  • Yin Hua – Spark SQL 改进
  • Zheng Peng – 错误修复

感谢所有贡献者!


Spark 新闻存档

最新消息

存档