阅读更多

3顶
1踩

数据库

原创新闻 Apache Spark 1.6发布

2016-01-07 10:19 by 副主编 mengyidan1988 评论(0) 有3733人浏览
今天我们非常高兴能够发布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贡献过力量的人表示感谢。

原文地址:Announcing Spark 1.6(译者/牛亚真 审校/朱正贵 责编/仲浩)
  • 大小: 10.4 KB
3
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Apache Spark 1.6发布(新特性介绍)

    Apache Spark 1.6发布 CSDN大数据 | 2016-01-06 17:34 今天我们非常高兴能够发布Apache Spark 1.6,通过该版本,Spark在社区开发中达到一个重要的里程碑:Spark源码贡献者的数据已经超过1000人,而在...

  • Spark 1.6发布:引入Dataset接口

    今天,Databricks宣布发布ApacheSpark1.6! 这也是开源社区开发的一个里程碑,2015年代码贡献者达到1000人,是2014一整年的两倍,见下图。\\\\接下来揭开Spark1.6新发布的功能。\\Spark1.6包含了超过1000个patches,...

  • Spark参数详解 (Spark1.6)

    Spark参数详解 (Spark1.6) 参考文档:Spark官网 在Spark的web UI在“Environment”选项卡中列出Spark属性。这是一个很有用的地方,可以检查以确保属性设置正确。注意,只有通过spark-defaults.conf, SparkConf, ...

  • spark1.6 编译_Spark1.6源码编译

    一、前言不论是spark还是hadoop...本文将中重点讲解apache版本和cdh版本下的spark编译。12二、环境介绍操作系统:centos6.5(建议内存4G以上)jdk:1.7.0_67spark版本:1.6.1hadoop版本:2.5.0或者cdh2.5.0maven版本:...

  • centos安装spark1.6

    spark1.6 jdk1.7 scala2.10 硬件环境 192.168.1.21(master,node21) 192.168.1.22(slave,node22) 192.168.1.23(slave,node23) 二.配置jdk、scala运行环境 jdk安装(我习惯用tar.gz包) tar -xzvf jdk1.7.tar.gz ...

  • Apache Spark 1.6 预览版:更简便的搜索

    除了可用性、可移植性等几个新的特性外,本次发布还提供了对尚未发布的Apache Spark 1.6预览。Databricks用户有机会在官方发布之前试用Spark 1.6的特性,包括在Databricks集成空间内轻松搜索Spark文档、点击几个按钮...

  • SparkStreaming+Kafka(spark 1.6)

    Note:spark1.6版本,kafka版本要是0.8.21 咳咳,pom文件自己去配 代码示例: def main(args:Array[String]):Uint={ val conf=new SparkConf().setAppName("test) //在集群中运行可以不指定master val sc=new ...

  • Apache Spark 1.6 Hadoop 2.6 Mac下单机安装配置

    转载:... 一、 下载资料 1. JDK 1.6 + 2. Scala 2.10.4 3. Hadoop 2.6.4 4. Spark 1.6 二、预先安装 1. 安装JDK 2.安装Scala 2.10.4 解压安装包即可 3. 配置sshd ssh-keygen...

  • Spark 1.6 SparkSQL实践

    org.apache.spark.sql.SQLContext val sqlc = new SQLContext(sc) 第六步 将RDD对象先进行结构类解析,然后过滤掉未解析成功的数据行,将解析后的LogEntity进行模式匹配,转换成CDNLog,并最终将RDD...

  • spark1.6 编译_spark1.6转到spark2.3总结(依赖、版本、初始化问题)

    问题:pom里面不写spark版本(2.0.0)的话,可能会默认用spark1.6导致版本冲突异常——语法通过但无法编译运行问题(spark版本必须对应Scala版本):参考...上面的spark和Scala混搭版本(不用理会hive版本)组合jar和pom写法...

  • Spark1.6基础知识笔记(含安装配置流程)

    1.Spark是用于大数据处理的集群计算框架,它不以MapReduce作为执行引擎,而是使用自己的分布式运行环境在集群上工作,可以在YARN上运行并与HDFS配合。Spark最突出的特点是能将作业与作业之间产生的大规模中间工作...

  • Spark 1.6发布的新功能

    2016年1月5日,Databricks宣布发布Apache Spark 1.6! 这也是开源社区开发的一个里程碑,2015年代码贡献者达到1000人,是2014一整年的两倍,见下图。 接下来揭开Spark 1.6新发布的功能。 Spark 1.6包含...

  • spark 1.6 MLlib 协同过滤

    简单介绍spark的协同过滤的矩阵分解采用ALS来计算,具体实现了算法以下参数 - numBlocks:数据划分为多少block进行并行计算,设置成-1时为自动配置 - rank:模型的潜在因子(主特征数目) - iterations:模型运行...

  • Origin教程009所需练习数据

    Origin教程009所需练习数据

  • 大模型的稀疏激活方法及其高效推理应用研究:基于dReLU激活函数

    内容概要:本文提出了一个新的激活函数dReLU,用于提高大语言模型(LLM)的稀疏激活水平。dReLU可以显著减少模型推理过程中激活的参数数量,从而实现高效的模型推理。通过在Mistral-7B和Mixtral-47B模型上的实验,验证了dReLU的有效性。结果表明,使用dReLU的模型在性能上与原始模型相当甚至更好,同时减少了计算资源的需求,达到了2-5倍的推理加速。 适合人群:对深度学习、大语言模型和模型优化感兴趣的机器学习研究人员和技术开发者。 使用场景及目标:适用于需要高效推理的大语言模型应用场景,特别是资源受限的设备,如移动电话。目标是减少模型的计算资源消耗,提高推理速度。 其他说明:本文详细探讨了dReLU的设计和实验验证,提供了大量的实验数据和对比结果,展示了dReLU在多种任务上的优越表现。

  • STM32F103+PWM+DMA精准控制输出脉冲的数量和频率 源程序

    最近参加一个农业机器人的比赛,由于今年的题目是蔬菜幼苗自动搬运,因此搬运部分需要用到一个三轴运动的装置,我们参考了3D打印机的原理,上面通过步进电机控制丝杆和皮带从而带动我们的抓手来抓举幼苗。因为比赛的幼苗和幼苗的基质比较小,这个过程需要精度比较高,查询了一些资料后,我想到了用dma来给STM32单片机的定时器寄存器ARR发送数据来精准控制输出pwm的数量,从而可以精准控制步进电机转动的度数,可以十分方便的计算出到某个位置需要的脉冲。

  • 白色大气风格的商务团队公司模板下载.zip

    白色大气风格的商务团队公司模板下载.zip

  • 2023-04-06-项目笔记 - 第三百五十八阶段 - 4.4.2.356全局变量的作用域-356 -2025.12.25

    2023-04-06-项目笔记-第三百五十八阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.356局变量的作用域_356- 2024-12-25

  • 白色大气风格的个人摄影图片博客网站源码下载.zip

    白色大气风格的个人摄影图片博客网站源码下载.zip

Global site tag (gtag.js) - Google Analytics