Spark发展现状与战线

前言

现今Spark正是风头正劲时,Spark本是UCBerkeley的AMPLab诞生的项目,后来捐赠给了Apache来管理源码和后续发展。今年从Apache孵化器终于孵化出了1.0版本。其对大数据的支持从内存计算和流处理,到交互式查询,一直到图计算和机器学习,可谓摆开了架势、拉长了战线,一方面挑战老前辈Hadoop和MapReduce,另一方面又随时准备迎接同样的后起之秀的挑战。

大数据的今天

今天的大数据系统生物圈百花齐放,有已经如日中天的通用批处理MapReduce,也有针对不同应用场景而特殊化的处理系统。

全栈式的Spark

Spark作为后起之秀,以其RDD模型的强大表现能力,不断完善自己的功能,逐渐形成了一套自己的生物圈,提供了full-stack的解决方案。其中主要包括Spark内存中批处理,Shark交互式查询,Spark Streaming流式计算三大部分。此外还有GraphX和MLBase提供的常用图计算和机器学习算法。

而Spark由于采用Scala编写,底层使用Akka,代码十分简洁。而且借助RDD的强大表现力,Spark各种子项目的代码量也很小。

Spark使用情况

援引自一篇博文,看一下Spark在互联网界的使用情况。

1. 腾讯

广点通是最早使用Spark的应用之一。腾讯大数据精准推荐借助Spark快速迭代的优势,围绕“数据+算法+系统”这套技术方案,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上,支持每天上百亿的请求量。

基于日志数据的快速查询系统业务构建于Spark之上的Shark,利用其快速查询以及内存表等优势,承担了日志数据的即席查询工作。在性能方面,普遍比Hive高2-10倍,如果使用内存表的功能,性能将会比Hive快百倍。

2. Yahoo

Yahoo将Spark用在Audience Expansion中的应用。Audience Expansion是广告中寻找目标用户的一种方法:首先广告者提供一些观看了广告并且购买产品的样本客户,据此进行学习,寻找更多可能转化的用户,对他们定向广告。Yahoo采用的算法是logistic regression。同时由于有些SQL负载需要更高的服务质量,又加入了专门跑Shark的大内存集群,用于取代商业BI/OLAP工具,承担报表/仪表盘和交互式/即席查询,同时与桌面BI工具对接。目前在Yahoo部署的Spark集群有112台节点,9.2TB内存。

3. 淘宝

阿里搜索和广告业务,最初使用Mahout或者自己写的MR来解决复杂的机器学习,导致效率低而且代码不易维护。淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。将Spark运用于淘宝的推荐相关算法上,同时还利用Graphx解决了许多生产问题,包括以下计算场景:基于度分布的中枢节点发现、基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等。

4. 优酷土豆

优酷土豆在使用Hadoop集群的突出问题主要包括:第一是商业智能BI方面,分析师提交任务之后需要等待很久才得到结果;第二就是大数据量计算,比如进行一些模拟广告投放之时,计算量非常大的同时对效率要求也比较高,最后就是机器学习和图计算的迭代运算也是需要耗费大量资源且速度很慢。

最终发现这些应用场景并不适合在MapReduce里面去处理。通过对比,发现Spark性能比MapReduce提升很多。首先,交互查询响应快,性能比Hadoop提高若干倍;模拟广告投放计算效率高、延迟小(同hadoop比延迟至少降低一个数量级);机器学习、图计算等迭代计算,大大减少了网络传输、数据落地等,极大的提高的计算性能。目前Spark已经广泛使用在优酷土豆的视频推荐(图计算)、广告业务等。

Spark的战线

?  DAG执行引擎:不少框架都提出了类似的基于DAG图的执行引擎,来对MapReduce模型的缺点进行优化。如Apache下的Ooize和Tez。

?  内存计算:作为Spark的杀手锏,分布式内存计算的市场竞争也非常激烈,有非常火的SAP的HANA平台,微软的Dryad,以及Druid。此外,还有众多的数据库厂商推出了内存数据库、内存表或内存计算网格(data grid)等产品。

交互式查询(Shark):Hive的性能问题和(近)实时分析的需求使得不少公司都提出了自己的解决方案。其中最耀眼的当属无敌的Google提出的Dremel嵌套计算模型。而其开源版本也是众多,有Cloudera Impala配合Parquet,以及Apache的Drill。

?  流式计算(Streaming Spark):Spark通过将连续的数据流划分成离散的数据段,从而将触角伸到了流式处理领域。而在这一领域,Twitter的Storm(已捐给Apache)被许多公司采用,也是不可小觑。相比之下,Yahoo的S4就显得冷清多了。

图计算(GraphX):图计算方面,Spark借鉴了Pregel和PowerGraph中的图分布式计算和图切割思想,提出了自己的工具包GraphX。它扩展了Spark,例如用EdgeRDD了和VertextRDD表示边和顶点等。

?  机器学习(MLBase):机器学习方面,Mahout是个有力的竞争对手,但Mahout也是基于MapReduce任务实现的。而在线机器学习框架Jubatus资料很少,进展不明。

看完这些总结后,不得不佩服Spark的应用范围之广!感觉目前Spark唯一没有单独建立子项目的就是存储方面了,主要是中间内存计算时的存储引擎。目前要么完全由Spark在内存中管理,要么通过Tachyon统一管理。

Spark的未来

Spark 1.0.1

?  Spark SQL(原Shark)支持JSON

Spark 1.1

?  通用Shuffle接口

?  MLLib统计算法

?  JDBC驱动

?  基于排序的Shuffle

Spark 1.2

?  重构存储支持

Spark 1.3+

?  SparkR对R语言统计分析的支持(目前已能下载)

参考资料

1 The State of Spark

2大数据计算新贵Spark在腾讯雅虎优酷成功应用解析

3 The Future of Apache Spark

时间: 2024-10-14 05:56:39

Spark发展现状与战线的相关文章

互联网广告的发展现状与趋势分析

一. 什么是互联网广告? 来自维基百科的释义是狭义的网络广告又被称为在线广告或者互联网广告:而广义的网络广告除了包括以计算机为核心组成的计算机网络为媒介的广告行为外,还包括其他所有以电子设备相互连接而组成的网络为媒介的广告行为,例如以无线电话网络,电子信息亭网络为载体的广告行为. 搜索引擎广告大混战 ——为什么谷歌是领导者? 在百度.谷粉搜搜(香港谷歌).香港雅虎.必应四大主流搜索引擎内输入“互联网广告”,百度.必应展现搜索结果的方式均是页面头部.尾部.右边栏都是广告,以区别的底色标识,正文中也

Go将统治下一个10年?Go语言发展现状分析

"本文是国内Go语言大中华区首席布道师--许式伟,在QCon2015上海站上的分享.他预测Go语言10年内一定会超过C和java,并且统治这一个10年. Go语言语法及标准库变化 Go从1.0版本到现在(2015年)已经有三年多的时间,大的版本发布了五个,下面大家一起看看每个大版本分别都改了什么,当然这里不可能把所有的细节都提到,但我认为重要的会提出来. 首先是Go1.1,Go1.0于2012年4月发布,此后基本维持了每半年发布一个新版本的时间间隔.Go1.5比较例外,在Go1.5的拖累下,Go

人工智能的发展现状与未来展望

作者:张达衢  摘自中国论文网 原文地址:http://www.xzbu.com/4/view-8299582.htm [关键词]人工智能:发展现状:未来展望  [中图分类号]TP18 [文献标志码]A [文章编号]1673-1069(2017)04-0107-02 1 引言  2016年年初,韩国围棋国手李在石与围棋程序Alpha Go对弈中首战失利,再一次将人工智能拉入了公众的视野,使其成为2016年度话题度最高的科技之一.不可否认,近些年来人工智能发展迅速,很多人工智能产品已经开始进入人们

智能投顾的发展现状和未来发展趋势

2017-3-6 10:05  来自: 36kr  "These violent delights have violent ends"(狂暴的欢愉必将有狂暴的结局)--<西部世界>里这句出自莎翁笔下的经典台词,用来形容近几年国内P2P市场的火爆与乱象恰到好处.从余额宝引发的欢愉,到招财宝"侨兴债"违约带来的阵痛,P2P从最初的野蛮生长到最近的反思整顿,完成了一个周期,市场反复教育投资者:收益和风险正相关,只有根据自己的风险偏好进行分散配置才是健康的理财

安卓的发展现状与前景展望

这次突然想到了安卓这个行业话题.另外由于具有一定的兴趣,所以在此研究了一下安卓的发展现状与未来的前景. 众多周知,安卓手机目前在国内国外的市场占有比重相当之高,自从Google开发了安卓平台以后,此行业的热度就在持续升温.据资料研究分析,目前安卓在全球智能手机市场的占比额达到80%以上,而在国内,更是达到了90%以上.接下来,我想对此进行适度的分析与概括. Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领

3D打印材料的发展现状(1)

材料是3D打印的物质基础,也是当前制约3D打印发展的瓶颈. 3D打印材料 3D打印材料是3D打印技术发展的重要物质基础,材料的发展对于3D打印的发展有重要的作用. 目前,3D打印材料主要包括工程塑料.光敏树脂.橡胶类材料.金属材料和陶瓷材料.此外,彩色石膏材料.人造骨粉.细胞生物原料以及砂糖等食品材料也在3D打印领域得到应用. 3D打印所用原材料都是专门针对3D打印设备和工艺而研发的,与普通的塑料.石膏.树脂等有所区别.形状包括有粉末状.丝状.曾片状和液体状等.根据打印设备的类型及操作条件不同,

第三方支付发展现状

2010年以来,中国第三方支付市场的交易规模保持50%以上的年均增速迅速扩大,已经成为全球的领跑者. 根据比达咨询(BigData-research)最新发布的<2016中国第三方移动支付市场研究报告>指出,2016年中国第三方支付总交易额为57.9万亿人民币,相比2015年增长率为85.6%.其中移动支付交易规模为38.6万亿元,约为美国的50倍.下面对我国第三方支付发展现状分析: 中国第三方支付市场规模 中国第三方支付是特指具备一定实力和信誉保障的第三方独立机构,一般通过和银行合作的方式,

0001片上网络技术发展现状及趋势浅析

片上网络技术发展现状及趋势浅析 李丽 许居衍 The State-of-the-art and perspectives on Network-on-Chip 摘要: 半导体工艺发展使得片上可以集成更大规模的硬件资源,片上网络的研究试图解决芯片中全局通信问题,使得从基于计算的设计转变为基于通信的设计,并实现可扩展的通信架构. 本文指出NoC是当前片上通信发展的主流趋势,并 分析了当前NoC关键技术瓶颈, 预测了多核技术和产业发展趋势. 关键词:片上网络:存储结构:并行软件:功耗管理 一.引言 多

信息系统运维的发展现状、趋势及运维的主要内容和目标

信息系统运维,特指新建或升级改造类信息系统项目实施完成后的系统在完成其试运行周期后,正式进入生产环境交付合适阶段的维护和保养工作. 一.信息系统运维的发展现状: 1.从建设向运维的转型时期: 2.缺少全面性的运维管理体系: 3.运维工作的定位欠准确: 4.运维缺乏标准化.规范化指导: 5.运维管理规范和预算制度的缺失. 二.信息系统运维的发展趋势: 1.大型工程趋向于集中式运维; 2.技术与管理并重的运维理念转变:从"重建设,轻维护,重技术,轻管理"走向"建设与维护并重,技术