Spark 1.0.0 是一个重要的版本,标志着 1.X 系列的开始。 此版本带来了各种新功能和强大的 API 兼容性保证,贯穿整个 1.X 系列。 Spark 1.0 增加了一个新的主要组件 Spark SQL,用于在 Spark 中加载和操作结构化数据。 它包括对 Spark 所有现有标准库的重大扩展(ML、Streaming 和 GraphX),同时还增强了 Java 和 Python 中的语言支持。 最后,Spark 1.0 带来了操作改进,包括对 Hadoop/YARN 安全模型的完全支持以及对所有支持的集群管理器统一的提交过程。
您可以下载 Spark 1.0.0 作为 源代码包 (5 MB tgz) 或 Hadoop 1 / CDH3、CDH4 或 Hadoop 2 / CDH5 / HDP2 (160 MB tgz) 的预构建包。 发布签名和校验和可在官方 Apache 下载站点 获得。
Spark 1.0.0 是 1.X 主要系列中的第一个版本。 Spark 保证其核心 API 在所有 1.X 版本中的稳定性。 历史上,Spark 在 API 更改方面一直非常保守,但此保证明确了我们对应用程序编写者的承诺。 该项目还清楚地注释了实验性、alpha 和开发人员 API,以便为较新组件的未来 API 更改提供指导。
对于在安全的 Hadoop 环境中运行的用户,Spark 现在与 Hadoop/YARN 安全模型集成。 Spark 将验证作业提交、安全地传输 HDFS 凭据以及验证组件之间的通信。
此版本显着简化了捆绑和提交 Spark 应用程序的过程。 新的 spark-submit 工具 允许用户通过通用流程将应用程序提交到任何 Spark 集群,包括本地集群、Mesos 或 YARN。 捆绑 Spark 应用程序的文档已大大扩展。 我们还为 Spark 的 Web UI 添加了一个历史服务器,允许用户在各个应用程序完成后查看 Spark 应用程序数据。
此版本引入 Spark SQL 作为一个新的 alpha 组件。 Spark SQL 支持在 Spark 中加载和操作结构化数据,可以从外部结构化数据源(当前为 Hive 和 Parquet)加载,或者通过将模式添加到现有的 RDD。 Spark SQL 的 API 与 RDD 数据模型互操作,允许用户将 Spark 代码与 SQL 语句交错。 在底层,Spark SQL 使用 Catalyst 优化器来选择有效的执行计划,并且可以自动将谓词推送到 Parquet 等存储格式中。 在未来的版本中,Spark SQL 还将为其他存储系统提供一个通用的 API。
在 1.0.0 中,Spark 的 MLlib 添加了对 Scala、Java 和 Python 中稀疏特征向量的支持。 它利用线性方法、k-means 和朴素贝叶斯中的存储和计算中的稀疏性。 此外,此版本还添加了几种新算法:用于分类和回归的可伸缩决策树、包括 SVD 和 PCA 在内的分布式矩阵算法、模型评估函数以及 L-BFGS 作为优化原语。 MLlib 编程指南 和代码示例也已大大扩展。
除了可用性和可维护性改进之外,Spark 1.0 中的 GraphX 在图加载、边反转和邻域计算方面带来了显着的性能提升。 这些操作现在需要更少的通信并产生更简单的 RDD 图。 Spark 的 Streaming 模块为有状态的流转换添加了性能优化,以及改进的 Flume 支持,以及用于长时间运行作业的自动化状态清理。
Spark 1.0 在其 Java 绑定中添加了对 Java 8 新 lambda 语法 的支持。 Java 8 支持用于编写匿名函数的简洁语法,类似于 Scala 和 Python 中的闭包语法。 此更改需要对当前 Java API 的用户进行少量更改,这些更改已在文档中注明。 Spark 的 Python API 已扩展为支持几个新函数。 我们还在 Python API 中包含了一些稳定性改进,特别是对于大型数据集。 PySpark 现在也支持在 YARN 上运行。
Spark 的 编程指南 已得到显着扩展,以集中涵盖所有支持的语言,并讨论开发生命周期的更多运算符和方面。 MLlib 指南 也已扩展,为每种算法提供了更多详细信息和示例,同时还改进了关于配置、YARN 和 Mesos 的文档。
DISK_ONLY
持久化的数据集现在直接写入磁盘,从而显着提高了大型数据集的内存使用率。虽然大多数 Spark API 与 0.x 版本中的相同,但为了长期灵活性,特别是在 Java API 中(为了支持 Java 8 lambda),进行了一些更改。 该文档包括 迁移信息 以升级您的应用程序。
以下开发人员为此版本做出了贡献
感谢所有贡献者!