原文 | Spark 2015 Year In Review
翻译 | 牛亚真
来自 | CSDN
Apache Spark在2015年得到迅猛发展,开发节奏比以前任何时候都快,在过去一年的时间里,发布了4个版本(Spark 1.3到Spark 1.6),各版本都添加了数以百计的改进。
给Spark贡献过源码的开发者数量已经超过1000,是2014年年末人数的两倍。据我们了解,不管是大数据或小数据工具方面,Spark目前是开源项目中最活跃的。对Spark的快速成长及社区对Spark项目的重视让我们深感责任重大。
在Databricks,我们仍然在努力推动Spark向前发展,事实上,2015年我们贡献给Spark的代码量是其它任何公司的10倍之多。在本博文中,将重点突出2015年加入到项目中的主要开发内容。
1.数据科学API,包括DataFrames,机器学习流水线(Machine Learning Pipelines)及R语言支持;
2.平台API;
3.Tungsten项目和性能优化;
4.Spark流计算。
在见证快速开发节奏的同时,也很高兴目睹了用户采用新版本的速度。例如,下图给出的是超过200个客户在Databricks运行Spark版本的情况(注意单个客户同时可以运行多个版本的Spark)。
从上图中可以看到,Spark用户在紧随最新版本方面积极性很高,在Spark 1.5发布后的仅三个月内,大多数的客户便在使用它,同时有一小部分客户已经在试用2015年11月底发布的预览版本的Spark 1.6。现在,让我们来详细说明2015年Spark的主要变化:
数据科学API: DataFrame,ML Pipelins和R
在Spark之前,大数据相关读物总是会涉及一系列令人望而生畏的概念,从分布式计算到MapReduce函数式编程。从而,大数据工具主要由那些掌握高级复杂技术水平的数据基础团队使用。
Spark在2015年首要发展主题是为大数据构建简化的APIs,类似于为数据科学构建的那样。我们并非逼迫数据科学家去学习整个新的发展范式,实际上是想要降低学习曲线,提供类似于他们已经熟悉的工具。
为了达此目的,下面介绍下Spark的三个主要API附件。
DataFrames:针对结构化的数据,是一个易用并且高效的API,类似于小数据工具,像Python中的R和Pandas。
Machine Learning Pipelines:针对完整的机器学习工作流,是一个易用的API。
SparkR:与Python一起,R是深受数据科学家欢迎的编程语言。只需简单的学习一下,数据科学家马上就可以使用R和Spark处理数据,比他们的单一机器处理数据强大的多。
虽然这些API仅仅发布了数月,根据2015年Spark调查报道,使用DataFrame API的Spark用户已占62%。正如调查结果所示,调查对象大部分人都把自己定位为数据工程师(41%)或数据科学家(22%),数据科学家对Spark兴趣的上升通过其使用的开发语言能更明显地说明问题,58%的调查对象使用Python(相比2014年增幅超过49%),18%的受访者使用R API。
由于我们发布了DataFrames,因此也收集了社区的反馈,其中最为重要的反馈是:对于构建更大型、更复杂的数据工程项目,经典RDD API所提供的类型安全特性十分有用。基于此反馈,针对这些不同种类的数据,我们正在Spark 1.6中开发一个新类型Dataset API。
平台APIs
对应用开发者来说,Spark正成为通用的运行时环境。应用程序仅需要针对单个集合的API进行编程便可以运行在不同种类的环境上(on-prem、cloud、Hadoop等)及连接不同种类的数据源。在本年年初,我们便为第三方开发人员引入了标准的可插拔数据源API,它可以智能地解析数据源格式。目前支持的数据源包括:
CSV, JSON, XML
Avro, Parquet
MySQL, PostgreSQL, Oracle, Redshift
Cassandra, MongoDB, ElasticSearch
Salesforce, Google Spreadsheets
为便于查找数据源和算法对应的库,我们也引入了Spark核心存储库spark-packages.org。
另外一个有趣的趋势是Spark早期使用者大多数与Hadoop结合起来使用,随着Spark的发展我,Hadoop不再代表着大多数Spark使用时。根据2015年Spark调查报告,48%的Spark部署方式为Spark standalone集群管理器,而Hadoop Yarn的使用仅为40%左右。
Tungsten项目和性能优化
根据2015年Spark调查报告,91%用户认为性能是Spark最重要的特征,因此,性能优化始终是Spark开发中的一个重要内容。
在今年年初,我们启动了Tungsten项目——被设计用于提高Spark内核架构的性能和健壮性的重要改进。Spark 1.5中已经提供了Tungsten的初步功能,这其中包括二进制处理(binary processing),它避免使用Java对象模型那种传统二进制内存布局格式。二进制处理极大地降低了数据密集型任务处理时的垃圾回收压力,除此之外,Tungsten还包括新的代码生成框架,在运行时对用户代码中的表达式计算生成相应经过优化的字节码。2015年发布的四个Spark版本,我们也添加了大量能够经过代码生成的内置函数,例如日期和字符串处理等常见任务。
另外,数据处理性能在查询执行时也非常重要,Parquet已经成为Spark中最常用的数据格式,其扫描性能对许多大型应用程序的影响巨大,在Spark 1.6当中,我们引入了一种新的Parquet读取器,该读取器针对平滑模式(flat schemas)使用一种经过优化的代码路径,在我们的基准测试当中,该新的读取器扫描吞吐率增加了近50%。
Spark流处理
随着物联网的崛起,越来越多的机构正在部署各自的流处理应用程序,将这些流处理程序同传统的流水线结合起来至关重要,Spark通过利用统一引擎进行批处理和流数据处理简化了部署难度。2015年Spark 流处理中增加的主要内容包括:
直接Kafka连接器:Spark 1.3 改进了与Kafka间的集成,从而使得流处理程序能够提供只执行一次数据处理的语义并简化操作。额外的工作提供了容错性和保证零数据丢失。
Web UI进行监控并帮助更好地调试应用程序:为帮助监控和调试能够7*24小时不间断运行的流处理程序,Spark 1.4 引入了能够显示处理时间线和直方图的新Web UI,同时也能够详细描述各离散Streams
状态管理10倍提升。在Spark 1.6当中,我们重新设计了Spark流处理中的状态管理API,新引入mapWithState API,它能够线性地扩展更新的记录数而非记录总数。在大多数应用场景中能够达到一个数量级的性能提升。
结束语
Databricks目前在Spark用户培训和教育方面投入巨大,在2015年,我们与加州大学伯克利分校、加州大学洛杉矶分校合作并提供两个大规模在线开放课程。第一个课程是Apache Spark大数据处理入门,教授学生使用Spark和数据分析;第二个课程是可扩展的机器学习,教授学生使用Spark进行机器学习。这两门课程在edX平台上都是免费的,在我们发布此消息后,目前已经有超过125000个学生注册,我们计算在今年完成对他们的培训。
我们对今年与社区的共同努力所带来的进步感到自豪,也为能够继承努力给Spark带来更丰富的特性感到激动,想了解2016年的开发内容,请继续保持对我们博客的关注。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03