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. Windows下mnist数据集caffemodel分类模型训练及测试

    1. MNIST数据集介绍 MNIST是一个手写数字数据库,样本收集的是美国中学生手写样本,比较符合实际情况,大体上样本是这样的: MNIST数据库有以下特性: 包含了60000个训练样本集和1000 ...

  2. es6 --- 功能

    标记的模板文字 1.模板文字!确实很棒.我们不再会这样做…. const concatenatedString = "I am the " + number + "per ...

  3. Oracle数据库Helper类

    using System;using System.Collections.Generic;using System.Data;using System.Data.OleDb;using System ...

  4. 数据仓库 SSIS

    SSDT 下载 :https://msdn.microsoft.com/en-us/library/mt204009.aspx Codeplex 上的 AdventureWorks 示例数据库此链接将 ...

  5. vcenter server appliance 5.5 管理中心 linux 版本的部署

    本文选自通过ovf模板部署: 需要下面两个文件即可: 打开vsphere client 登录到你安装了exsi5.5的物理机上面: 点击文件---> 部署ovf模板  ---->选择你的模 ...

  6. 发送消息vs函数调用

    消息发送:对象处理消息: 消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用. objc_msgSend(void /* id self, SEL op ...

  7. DAG-背包九解-01背包

    饭卡:   电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够 ...

  8. UCOSii任务就绪表之OSUnMapTbl[16*16]的数组是如何得到的

    我比较喜欢图,如下图: 图1: INT8U const OSUnMapTbl[]数组内的数据. 1.UCOSii的优先级相关内容 首先先介绍一个概念:优先级.UCOSii的优先级按倒叙排列,即优先级数 ...

  9. 记intel杯比赛中各种bug与debug【其一】:安装intel caffe

    因为intel杯创新软件比赛过程中,并没有任何记录.现在用一点时间把全过程重演一次用作记录. 学习 pytorch 一段时间后,intel比赛突然不让用 pytoch 了,于是打算转战intel ca ...

  10. Linux Shell脚本编程-函数

    函数介绍  定义:把一段独立功能的的代码当做一个整体,并为之一个名字,命名的代码段,此即为函数:  功能:函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程.  注意: ...