Apache Spark 1.6公布(新特性介绍)

Apache Spark 1.6公布

CSDN大数据 | 2016-01-06 17:34

今天我们很高兴可以公布Apache Spark 1.6,通过该版本号,Spark在社区开发中达到一个重要的里程碑:Spark源代码贡献者的数据已经超过1000人,而在2014年年末时人数仅仅有500。

那么,Spark 1.6有什么新特性呢?Spark 1.6有逾千个补丁。

在本博文中,我们将重点突出三个基本的开发主题:性能提升、新的DataSet API和数据科学函数的扩展。

性能提升

依据我们2015年Spark调查报告。91%的用户觉得性能是Spark最重要的方面,因此,性能优化是我们进行Spark开发的一个重点。

Parquet性能:Parquet已经成为Spark中最经常使用的数据格式之中的一个,同一时候Parquet扫描性能对很多大型应用程序的影响巨大。在曾经。Spark的Parquet读取器依赖于parquet-mr去读和解码Parquet文件。当我们在编写Spark应用程序时,须要花非常多的时间在“记录装配(record assembly)”上。以使进程可以将Parquet列重建为数据记录。在Spark 1.6中。我们引入了新的Parquet读取器。它绕过parquert-mr的记录装配并使用更优化的代码路径以获取扁平模式(flat
schemas)。

在我们的基准測试其中,通过5列測试发现。该新的读取器扫描吞吐率能够从290万行/秒添加到450万行/秒,性能提升接近50%。

自己主动内存管理:Spark 1.6中还有一方面的性能提升来源于更良好的内存管理,在Spark 1.6之前,Spark静态地将可用内存分为两个区域:运行内存和缓存内存。运行内存为用于排序、hashing和shuffling的区域,而缓存内存为用于缓存热点数据的区域。

Spark 1.6引入一新的内存管理器,它能够自己主动调整不同内存区域的大小。在运行时依据运行程序的须要自己主动地添加或缩减对应内存区域的大小。对很多应用程序来说,它意味着在无需用户手动调整的情况下。在进行join和aggregration等操作时其可用内存将大量添加。

前述的两个性能提升对用户来说是透明的。使用时无需对代码进行改动,而以下的改进是一个新API可以保证更好性能的样例。

流式状态管理10倍性能提升:在流式应用程序其中。状态管理是一项重要的功能,经常常使用于维护aggregation或session信息。通过和很多用户的共同努力,我们对Spark Streaming中的状态管理API进行了又一次设计。引入了一个新的mapWithState API。它能够依据更新的数量而非整个记录数进行线性扩展,也就是说通过跟踪“deltas”而非总是进行全部数据的全量扫描的方式更加高效。

在很多工作负载中,这样的实现方式能够获得一个数量级性能提升。我们创建了一个notebook以说明怎样使用该新特性。不久后我们也将另外撰写对应的博文对这部分内容进行说明。

Dataset API

在今年较早的时候我们引入了DataFrames。它提供高级函数以使Spark可以更好地理解数据结构并运行计算。DataFrame中额外的信息可以使Catalyst optimizer和Tungsten运行引擎(Tungsten execution engine)自己主动加速实际应用场景中的大数据分析。

自从我们公布DataFrames,我们得到了大量反馈,当中缺乏编译时类型安全支持是诸多重要反馈中的一个,为解决这该问题,我们正在引入DataFrame API的类型扩展即Datasets。

Dataset API通过扩展DataFrame API以支持静态类型和用户定义函数以便可以直接执行于现有的Scala和Java类型基础上。通过我们与经典的RDD API间的比較,Dataset具有更好的内存管理和长任务执行性能。

请參考Spark Datasets入门这篇博文。

新数据科学函数

机器学习流水线持久化:很多机器学习应用利用Spark ML流水线特性构建学习流水线,在过去,假设程序想将流水线持久化到外部存储,须要用户自己实现相应的持久化代码,而在Spark 1.6其中,流水线API提供了相应的函数用于保存和又一次载入前一状态的流水线,然后将前面构建的模型应用到后面新的数据上。比如,用户通过夜间作业训练了一个流水线。然后在生产作业中将其应用于生产数据。

新的算法和能力:本版本号同一时候也添加了机器学习算法的范围,包含:

单变量和双变量统计

存活分析

最小二乘法标准方程

平分K均值聚类

联机如果检验

ML流水线中的隐含狄利克雷分布(Latent Dirichlet Allocation。LDA)

广义线性模型(General Liner Model,GLM)类R统计

R公式中的特征交互

GLM实例权重

DataFrames中的单变量和双变量统计

LIBSVM数据源

非标准JSON数据

本博文仅仅给出了本公布版本号中的主要特性。我们也编译了一个更具体的发行说明集并附有可执行的样例。

在接下来的几周内,我们将陆续推出对这些新特性进行更具体说明的博文。请继承关注Databricks博客以便了解很多其它关于Spark 1.6的内容。

假设你想试用这些新特性,Databricks能够让你在保留老版本号Spark的同一时候使用Spark 1.6。注冊以获取免费试用帐号。

若没有1000个源代码贡献者,Spark如今不可能如此成功,我们也趁此机会对全部为Spark贡献过力量的人表示感谢。

译者/牛亚真 审校/朱正贵 责编/仲浩

译者介绍:牛亚真。中科院计算机信息处理专业硕士研究生,关注大数据技术和数据挖掘方向。

原网页已由QQ浏览器云转码

时间: 2024-10-06 15:38:44

Apache Spark 1.6公布(新特性介绍)的相关文章

Apache Spark 2.2.0新特性介绍(转载)

这个版本是 Structured Streaming 的一个重要里程碑,因为其终于可以正式在生产环境中使用,实验标签(experimental tag)已经被移除.在流系统中支持对任意状态进行操作:Apache Kafka 0.10 的 streaming 和 batch API支持读和写操作.除了在 SparkR, MLlib 和 GraphX 里面添加新功能外,该版本更多的工作在系统的可用性(usability).稳定性(stability)以及代码的润色(polish)并解决了超过 110

Hadoop 2.4.0新特性介绍

在2014年4月7日,Apache发布了Hadoop 2.4.0 .相比于hadoop 2.3.0,这个版本有了一定的改进,突出的变化可以总结为下列几点(官方文档说明): 1 支持HDFS访问控制列表(ACL,Access Control Lists) 这个特性解决了在一定情况下,文件权限访问的权限问题.其机制是基于Linux文件访问权限的特征,如果你熟悉Linux的文件访问机制,你就不用再去理解HDFS文件访问的特性了. 有了ACL特性后,对HDFS文件系统就具有了良性的扩展特性.HDFS-4

ArcGIS 10.3 for Desktop新特性介绍

ArcGIS 10.3是一个完整公布的ArcGIS平台,它包含新的产品(ArcGIS Pro),针对10.2版本号产品进行了功能增强和稳定性的改进. ArcGIS 10.3 for Server新特性介绍 http://blog.csdn.net/linghe301/article/details/31358733 ------------------------------------------------------------------ 版权全部,文章同意转载,但必须以链接方式注明源地

Java 11 新特性介绍

Java 11 已于 2018 年 9 月 25 日正式发布,之前在Java 10 新特性介绍中介绍过,为了加快的版本迭代.跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个大版本,每个季度发布一个中间特性版本,并且做出不会跳票的承诺.通过这样的方式,Java 开发团队能够将一些重要特性尽早的合并到 Java Release 版本中,以便快速得到开发者的反馈,避免出现类似 Java 9 发布时的两次延期的情况. 按照官方介绍,新的版本发布周期将会严格按照时间节点,于每年

ArcGIS 10.2新特性介绍:影像

1.新增栅格类型 新增支持三种新的栅格类型:DMCii.Pleiades 和 SPOT6. 同时,新增提供中国卫星 Raster Type 扩展下载,支持中国卫星影像数据在ArcGIS 中的管理和使用.扩展支持的卫星产品包括: HJ 1A/1B CCD raster type ZY02C HRC raster type ZY02C PMS raster type ZY3 – CRESDA ZY3 – SASMAC 对于支持的国产卫星,正射.融合.镶嵌和匀色等常用处理,通过 ArcGIS 的On-

jdk7和8的一些新特性介绍

jdk7和8的一些新特性介绍 Java代码   本文是我学习了解了jdk7和jdk8的一些新特性的一些资料,有兴趣的大家可以浏览下下面的内容. 官方文档:http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html 在jdk7的新特性方面主要有下面几方面的增强: 1.jdk7语法上 1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头. // 所有整数 int, short,long,byte都可以用二

php7函数,声明,返回值等新特性介绍

使用 ... 运算符定义变长参数函数 (PHP 5 >= 5.6.0, PHP 7) 现在可以不依赖 func_get_args(), 使用 ... 运算符 来实现 变长参数函数. function f($req, $opt = null, ...$params) { // $params 是一个包含了剩余参数的数组 printf('$req: %d; $opt: %d; number of params: %d'."\n", $req, $opt, count($params)

MyBatis 3.5.2 新特性介绍

1.MyBatis 最新版本 3.5.2 发布 MyBatis最新版本是:3.5.2,发布时间是:2019年7月15日 2.MyBatis 3.5.2 新特征介绍 我们知道,MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.在定制化SQL方面,MyBatis做出了很多的改进和优化.下面我们看看新版本的MyBatis有哪些改进呢? (1)支持LIMIT 在select/update/delete的应用.(2)支持OFFSET在select中的使用.(3)支持FETCH

新版本来袭:Apache Spark 1.5新特性介绍

Apache Spark社区2015年9月9日发布了1.5版本,该版本由230+开发人员和80+机构参与,修复了1400多个补丁,该版本可以通过 http://spark.apache.org/downloads.html进行下载.Spark1.5中最主要的修改内容是为了提升Spark性能.可用性和操作稳定性,特别在该版本中引入了Project Tungsten(钨丝项目),该项目通过对几个底层框架构建的优化进一步Spark性能.另外在该版本中添加了Streaming组件.机器学习算法和新的Sp