
原文 | 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
解析 F 边界检验:协整分析中的实用工具 在计量经济学的时间序列分析中,判断变量之间是否存在长期稳定的均衡关系(即协整关系) ...
2025-08-05大数据时代的隐患:繁荣背后的隐忧 当我们在电商平台浏览商品时,系统总能 “精准” 推送心仪的物品;当我们刷短视频时,算法 ...
2025-08-05CDA 数据分析师考试全解析 在当今数字化时代,数据已成为企业发展的核心驱动力,数据分析师这一职业也愈发受到重视。CDA 数据分 ...
2025-08-05CDA认证在国际市场上的认可度正在逐渐增长。CDA(Certified Data Analyst)认证,源自中国,面向全球,旨在提升数字化人才的数据 ...
2025-08-04本次活动市场价2000元,现面向会员免费开放,会员朋友更可以邀请一位非会员免费参加。 【活动目标】 ...
2025-08-04MySQL 统计连续每天数据:从业务需求到技术实现 在数据分析场景中,连续日期的数据统计是衡量业务连续性的重要手段 —— 无论是 ...
2025-08-04反向传播神经网络:突破传统算法瓶颈的革命性力量 在人工智能发展的历史长河中,传统算法曾长期主导着数据处理与模式识别领域 ...
2025-08-04CDA 数据分析师行业标准:构建数据人才的能力坐标系 在数据驱动决策成为企业核心竞争力的时代,CDA(数据分析师)行业标准作为 ...
2025-08-04评判两组数据与初始数据准确值的方法 在数据分析与研究中,我们常常会面临这样的情况:需要对通过不同方法、不同过程得到的两组 ...
2025-08-01通过 COX 回归模型诊断异常值 一、COX 回归模型概述 COX 回归模型,又称比例风险回归模型,是一种用于生存分析的统计方法。它能 ...
2025-08-01CDA 数据分析师报考条件详解:迈向专业认证的指南 在数据分析行业蓬勃发展的当下,CDA 数据分析师认证成为众多从业者提升专业 ...
2025-08-01K-S 曲线、回归与分类:数据分析中的重要工具 在数据分析与机器学习领域,K-S 曲线、回归和分类是三个核心概念与工具,它们各 ...
2025-07-31大数据时代对定性分析的影响 在大数据时代,海量、多样、高速且低价值密度的数据充斥着我们的生活与工作。而定性分析作为一 ...
2025-07-31CDA含金量分析 在数字经济与人工智能深度融合的时代,数据驱动决策已成为企业核心竞争力的关键要素。CDA(Certified Data Analys ...
2025-07-31SASEM 决策树:理论与实践应用 在复杂的决策场景中,如何从海量数据中提取有效信息并制定科学决策,是各界关注的焦点。SASEM 决 ...
2025-07-30SPSS 语法使用详解 在当今数据驱动的时代,SPSS( Statistical Package for the Social Sciences)作为一款功能强大的统计分析软 ...
2025-07-30人工智能对CDA数据分析领域的影响 人工智能对 CDA(Certified Data Analyst,注册数据分析师)数据分析领域的影响是全方位、多层 ...
2025-07-30MySQL执行计划中rows的计算逻辑:从原理到实践 MySQL 执行计划中 rows 的计算逻辑:从原理到实践 在 MySQL 数据库的查询优化中 ...
2025-07-29左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-29CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-29