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浏览器云转码

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

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

    这个版本是 Structured Streaming 的一个重要里程碑,因为其终于可以正式在生产环境中使用,实验标签(experimental tag)已经被移除.在流系统中支持对任意状态进行操作:A ...

  2. Apache Spark 2.2.0 新特性详细介绍

    本章内容: 待整理 参考文献: Apache Spark 2.2.0新特性详细介绍 Introducing Apache Spark 2.2

  3. Apache Spark 2.3.0 重要特性介绍

    文章标题 Introducing Apache Spark 2.3 Apache Spark 2.3 介绍 Now Available on Databricks Runtime 4.0 现在可以在D ...

  4. Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性

    Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+ ...

  5. ArcGIS 10.3 for Desktop新特性介绍

    ArcGIS 10.3是一个完整公布的ArcGIS平台,它包含新的产品(ArcGIS Pro),针对10.2版本号产品进行了功能增强和稳定性的改进. ArcGIS 10.3 for Server新特性 ...

  6. Java 11 新特性介绍

    Java 11 已于 2018 年 9 月 25 日正式发布,之前在Java 10 新特性介绍中介绍过,为了加快的版本迭代.跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个 ...

  7. dubbox新特性介绍

    dubbx是当当网对原阿里dubbo2.x的升级,并且兼容原有的dubbox.其中升级了zookeeper和spring版本,并且支持restfull风格的远程调用. dubbox git地址:  h ...

  8. jdk7和8的一些新特性介绍

    jdk7和8的一些新特性介绍 本文是我学习了解了jdk7和jdk8的一些新特性的一些资料,有兴趣的大家可以浏览下下面的内容. 官方文档:http://www.oracle.com/technetwor ...

  9. Xcode9新特性介绍-中文篇

    背景: Xcode 9 新特性介绍: 1.官方原文介绍链接 2.Xcode9 be ta 2 官方下载链接 本文为官方介绍翻译而来,布局排版等都是按照官方布局来的. 与原文相比,排版上基本还是熟悉的配 ...

随机推荐

  1. MySql-Error: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    MySql-Error: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 标签( ...

  2. 监控rman备份

    1.服务会话关联通道设置 set COMMAND ID 命令 2.查询V$PROCESS和V$SESSION 决定会话对应的RMAN的通道 3.查询V$session_LONGGOPS监控备份集和复制 ...

  3. AngularJs轻松入门源码托管至Github

    Github是全球最大的代码托管平台,笔者玩Github有一段时间了,有很多开源项目的源码都托管在Github上,笔者在上面也发现了不少优秀的开源代码. 每次写完博文想在最后附上文章相关的代码,但是由 ...

  4. <Sicily>Pair

    一.题目描述 The N cities of Estiah are connected by N-1 roads. The roads are built in a way that it's alw ...

  5. oracle(sql)基础篇系列(四)——数字字典、索引、序列、三范式

    数字字典表 --查看当前用户下面有哪些张表 select * from user_tables; select table_name from user_tables; --查看当前用户下面有哪些视图 ...

  6. ACM训练联盟周赛(第三场)

    A.Teemo's bad day Today is a bad day. Teemo is scolded badly by his teacher because he didn't do his ...

  7. 安装Debugging Tools时出现错误Setup could not find the file WinSDK_amd64的处理

    安装Debugging Tools时出现错误Setup could not find the file WinSDK_amd64的处理 1.软件来源:  微软官网下载SDK ISO安装包(含有debu ...

  8. 使用WinNTSetup安装win10时提示efi part有红叉(win10安装UEFI系统安装)

    1.装载ImDisk虚拟磁盘 2.格式化硬盘 *格式化时注意”创建新ESP分区 3.使用 WinNTSetup 选择win10安装程序 *1. “BOOTMGR PBR "后有感叹号不用管, ...

  9. vue-cli生成的模板各个文件详解(转)

    vue-cli脚手架中webpack配置基础文件详解 一.前言 原文:https://segmentfault.com/a/1190000014804826 vue-cli是构建vue单页应用的脚手架 ...

  10. 创建vue.js项目

    vue init webpack test cd test npm install 或者 cnpm install test npm run dev