xuanxufeng 发表于 2016-1-11 18:06:39

Apache Spark 1.6 正式发布,做了哪些改变

本帖最后由 xuanxufeng 于 2016-1-11 18:11 编辑


问题导读


1.spark1.6做了哪些改变?
2.性能提升做了哪些改进?
3.增加了哪些新的算法和功能?


static/image/hrline/4.gif




Apache Spark 1.6 正式发布,Spark 1.6 包含 1000+ 分支,主要是三个大方面的改进:性能提升,新的 Dataset API 和数据科学功能的扩展。这是社区开发非常重要的一个里程碑:Spark 贡献者人数突破 1000 人,比 2014 年多一倍。


性能提升根据2015年Spark官方调研发现,91%的用户觉得性能提升是Spark最重要的方面。因此,性能优化是Spark开发一直的关注点。

读取Parquet性能提升:
Parquet是在Spark使用中最常用的数据格式。Parquet读取性能对海里数据应用有着极其重大的影响。在过去,Spark中读取Parquet依赖于Parquet的(parquert-mr)MR来读取并解析Parquet文件。当我们优化Spark程序时,你会发现太多的时间消耗在从Parquet列解析成记录集的过程中。而在Spark 1.6中Databricks采用一种新型的Parquet reader读取器,它可以避开”parquert-mr”式的记录集解析,并使用更加优化的字节码路径来解析Parquet的schemas。在基准测试中可以发现,新型的Parquet reader读取器读取Parquet文件有 50%的性能提升(从2.9 million/秒提升到4.5million/秒)。

自动内存管理:
Spark 1.6另外一个性能提升是在内存管理方面。在Spark 1.6之前,Spark静态地把内存划分成两部分:execution memory 和 cache memory。Execution memory主要用来做sort,hash和shuff。Cache memory是用来缓存热点数据的。Spark 1.6引进新的内存管理机制能自动调节这两种内存的区域,运行时自动增长,回收时根据执行的应用适时进行。这意味着在无需用户干预的情况下使用join和aggregation操作时内存的自适应有大幅的提升。对于读取Parquet和自动内存管理两种性能提升也不需要开发者更改老版本的代码。

streaming state management十倍的性能提升:
State management是Spark Streaming应用开发里重要的功能,经常用来保存聚合信息或session信息。通过社区开发者的反馈,Databricks重新设计了state management API,并引入mapWithState API(可随updates的数目线性扩展)。这意味着能更有效的跟踪增量变化,而不是每次update都要对数据进行一次全scan。Databricks已经创建了一个notebook来展示怎么使用这个new feature,后面会发blog进一步对这个功能进行详细讲解。
Dataset API在今年早些时候Spark引入DataFrame,它可以提供high-level functions让Spark更好的处理数据结构和计算。这让Catalyst optimizer 和Tungsten execution engine自动加速大数据分析。
发布DataFrame之后开发者收到了很多反馈,其中一个主要的是大家反映缺乏编译时类型安全。为了解决这个问题,Spark采用新的Dataset API (DataFrame API的类型扩展)。
Dataset API扩展DataFrame API支持静态类型和运行已经存在的Scala或Java语言的用户自定义函数。对比传统的RDD API,Dataset API提供更好的内存管理,特别是在长任务中有更好的性能提升,请参见blog。
新的科学计算功能

机器学习管道持久化:现在许多机器学习的应用采用Spark的ML pipeline功能来构建机器学习pipelines。老版本中,如果想在外部存储pipeline,需要用户自己完成持久化代码部分。在Spark 1.6中已经提供了对应的function来存储和重新加载pipelines,并把先前的models应用到新的数据中。

大量新的机器学习和统计分析算法:这次发布增加了以下算法:· 无偏估计统计· 生成分析· 最小二乘法的归一化· 二分k均值聚类算法· 在线假设检验· LDA算法· 支持R语言的广义线性模型的统计· 公式的交互· 支持R语言的广义线性模型的权重· LIBSVM数据源· 支持非标准的JSON数据
更多改进内容请看发行说明。


相关链接
[*]Apache Spark 的详细介绍:请点这里
[*]Apache Spark 的下载地址:请点这里




放飞自己365 发表于 2016-1-12 09:19:31

非常感谢,有学习了

a_zhen 发表于 2016-1-12 11:34:00

开始努力啊,老是跟不上节奏啊

june_fu 发表于 2016-1-14 09:33:03

wow,good哈哈

peterzor 发表于 2016-1-14 11:57:02

mark mark

wmj007 发表于 2016-1-15 01:30:46

太棒了,必须要支持
页: [1]
查看完整版本: Apache Spark 1.6 正式发布,做了哪些改变