说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录

HTML文档下载 WORD文档下载 PDF文档下载
Spark在内存计算更具优势已众所周知,然而在许多人心里,磁盘数据计算上,Hadoop仍然老当益壮。为了打破这个误解,近日Databricks与AWS一起完成了一个Daytona Gray类别的Sort Benchmark,并创造了该测试的新纪录。

在过去几年,Apache Spark的采用以惊人的速度增加着,通常被作为MapReduce后继,可以支撑数千节点规模的集群部署。在内存中数据处理上,Apache Spark比MapReduce更加高效已经得到广泛认识;但是当数据量远超内存容量时,我们也听到了一些机构在Spark使用上的困扰。因此,我们与Spark社区一起,投入了大量的精力做Spark稳定性、扩展性、性能等方面的提升。既然Spark在GB或TB级别数据上运行良好,那么它在PB级数据上也应当同样如此。

为了评估这些工作,最近我们与AWS一起完成了一个Sort Benchmark(Daytona Gray类别)测试,一个考量系统排序100TB数据(万亿条记录)速度的行业基准测试。在此之前,这项基准测试的世界记录保持者是雅虎,使用2100节点的Hadoop MapReduce集群在72分钟内完成计算。而根据测试结果得知,在使用了206个EC2节点的情况下,Spark将排序用时缩短到了23分钟。这意味着在使用十分之一计算资源的情况下,相同数据的排序上,Spark比MapReduce快3倍!

此外,在没有官方PB排序对比的情况下,我们首次将Spark推到了1PB数据(十万亿条记录)的排序。这个测试的结果是,在使用190个节点的情况下,工作负载在短短不到4小时内完成,同样远超雅虎之前使用3800台主机耗时16个小时的记录。同时,据我们所知,这也是公用云环境首次完成的PB级排序测试。

Hadoop World Record Spark 100 TB Spark 1 PB
Data Size 102.5 TB 100 TB 1000 TB
Elapsed Time 72 mins 23 mins 234 mins
# Nodes 2100 206 190
# Cores 50400 6592 6080
# Reducers 10,000 29,000 250,000
1.42 TB/min 4.27 TB/min 4.27 TB/min
Rate/node 0.67 GB/min 20.7 GB/min 22.5 GB/min
Sort Benchmark Daytona Rules Yes Yes No
Environment dedicated data center EC2 (i2.8xlarge) EC2 (i2.8xlarge)

为什么会选择排序?

排序的核心是shuffle操作,数据的传输会横跨集群中所有主机。Shuffle基本支持了所有的分布式数据处理负载。举个例子,在一个连接了两个不同数据源的SQL查询中,会使用shuffle将需要连接数据的元组移动到同一台主机;同时,类似ALS等协同过滤算法同样需要依赖shuffle在网络中发送用户或产品的评级(ratings)和权重(weights)。

大部分数据管道开始时都会有大量的原始数据,但是在管道处理过程中,随着越来越多不相干数据被过滤,或者中间数据被更简洁的表示,数据量必然会减少。在100TB原始数据的查询上,网络上shuffle的数据可能只有100TB的一小部分,这种模式也体现在MapReduce的命名。

然而,排序却是非常有挑战的,因为数据管道中的数据量并不会减少。如果对100TB的原始数据进行排序,网络中shuffle的数据必然也是100TB。同时,在Daytona类型的基准测试中,为了容错,不管是输入数据还是输出数据都需要做备份。实际上,在100TB的数据排序上,我们可能会产生500TB的磁盘I/O及200TB的网络I/O。

因此,基于上述原因,当我们寻找Spark的测量标准和提升办法时,排序这个最苛刻的工作负载成为了对比的不二之选。

产生如此结果的技术实现

在超大规模工作负载上,我们投入了大量的精力来提升Spark。从细节上看,与这个基准测试高度相关的工作主要有3个: 

首先及最关键的,在Spark 1.1中我们引入了一个全新的shuffle实现,也就是基于排序的shuffle(SPARK­2045)。在此之前,Spark做的是基于哈希的shuffle实现,它需要在内存中同时保持P(reduce的分割数量)个缓冲区。而在基于排序的shuffle下,任何时候系统只使用一个缓冲区。这个操作将显著地减少内存开销,因此同一个场景下可以支撑数十万任务(我们在PB排序中使用了2.5万个任务)。

其次,我们修订了Spark的网络模型,通过JNI(SPARK­2468)使用基于Netty的Epoll本地端口传输。同时,新的模型还拥有了独立的内存池,绕过了JVM的内存分配器,从而减少垃圾回收造成的影响。

最后但同样重要的是,我们建立了一个外部shuffle服务(SPARK­3796),它与Spark本身的执行器完全解耦。这个新的服务基于上文所述的网络模型,同时,在Spark本身的执行器忙于GC处理时,它仍然可以保证shuffle文件处理的继续执行。


通过这三项改变,我们的Spark集群在map阶段单 节点可以支撑每秒3GB的IO吞吐,在reduce阶段单节点可以支撑1.1GB,从而榨干这些机器间10Gbps的网络带宽。

更多的技术细节

TimSort:在Spark 1.1版本中,我们将默认排序算法从 quicksort转换到TimSort,它是合并排序和嵌入排序的一个衍生。在大部分现实世界数据集中,TimSort比quicksort更加高效,在部分排序数据中表现则更为优秀。不管在map阶段还是Reduce阶段,我们都使用了TimSort。

缓存位置的利用:在排序基准测试中,每条记录的大小都是100字节,而被排序的键是前10个字节。在排序项目的性能分析阶段,我们注意到缓存命中率不如人意,因为每次比较都需要进行一个随机的对象指针查询。为此,我们重新设计了记录在内存的布局,用16字节长度(两个长整形)的记录来表示每条记录。在这里,前10个字节代表了排序的键,后4个字节则代表了记录的位置(鉴于字节顺序和符号,这点并不容易发现)。这样一来,每个比较只需要做一次缓存查询,而且它们都是连续的,从而避免了随机的内存查询。

使用TimSort和新的布局方式来利用缓存命中,排序所占用的CPU时间足足减少了5倍。

大规模下的容错机制:在大规模下,许多问题都会暴露。在这个测试过程中,我们看到因为网络连通问题出现的节点丢失,Linux内核自旋,以及因为内存碎片整理造成的节点停滞。幸运的是,Spark的容错机制非常好,并且顺利的进行故障恢复。

AWS的能量:如上文所述,我们使用了206个i2.8xlarge实例来跑这个I/O密集测试。通过SSD,这些实例交付了非常高的I/O吞吐量。我们将这些实例放到一个VPC放置组中,从而通过单SR-IOV增强网络性能,以获得高性能(10Gbps)、低延时和低抖动。

Spark只能在内存中大放异彩?

这个误解一直围绕着Spark,特别是刚进入社区中的新人更是如此认为。不错,Spark因为内存计算的高性能闻名,然而Spark的设计初衷和理念却是一个通用的大数据处理平台——不管是使用内存还是磁盘。在数据无法完全放入内存时,基本上所有的Spark运算符都会做一些额外的处理。通俗来说,Spark运算符是MapReduce的超集。

如本次测试所示,Spark可以胜任集群内存大小N倍的数据集处理。

总结

击败Hadoop MapReduce集群创造的大规模数据处理记录不仅是对我们工作的一个证明,也是对Spark承诺的一个验证——在任何数据体积,Spark在性能和扩展性上都更具优势。同时,我们也希望在用户使用过程中,Spark可以带来时间和开销上的双节省。

博文链接: Spark Breaks Previous Large-Scale Sort Record(翻译/童阳 责编/仲浩)

更多Spark及Hadoop信息可关注2014年12月12-14日在北京召开的2014中国大数据技术大会(暨第二届CCF大数据学术会议),届时百余位国内外顶尖技术人员、学术大师将送上第一手的实践分享。


免费订阅“CSDN云计算(左)CSDN大数据(右)”微信公众号,实时掌握第一手云中消息,了解最新的大数据进展!

CSDN发布虚拟化、Docker、OpenStack、CloudStack、数据中心等相关云计算资讯,     分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务。        

用VB开发标准CGI程序 用VB实现客户——服务器(TCP/IP)编程实例 用VB实现聊天讨论室和点对点会话 用VB写一个定时PING某IP的程序 用VB制作浏览器 用Visual Basic 5.0设计E-mail程序(MAPI) 用Visual Basic6.0编写客户服务器程序 用Visual Basic创建FTP组件 用Visual Basic开发数据库浏览器 用Visual Basic轻松地设计Browser及Ftp程序 VB用Winsock控件发信Email VB用Winsock实现点对点通信 邮件检查程序(二) -VB资料 邮件检查程序(一) -VB资料 在VB程序中怎样挂断拨号网络 在VB中利用UDP协议编写聊天程序 在VB中模拟实现邮件传输 在VB中实现文件上传 在VB中使用UDP协议 在VB中用Outlook发电子邮件 在程序中打开 Internet 拨号连接窗口 -VB资料 在一个单位内部或通过广域协议(如X.25)互联的行业内部都有几十或上万台计算机互联,用Intrane 在应用中集成浏览器-VB资料 在桌面上建立一个 Internet 快捷键 -VB资料 VB怎样接收电子邮件(POP3协议简介) VB怎样用VB得知系统当前是否处于internet链结状态 VB制作自己的网络搜索软件 自动更新工作站的应用程序-VB资料 自己的IE——用VB制作浏览器 VB6制作Win98风格的工具栏 VB实现窗口的弹出式菜单 如何在jsp调用windows下的程序执行.就是IE当shell.(有点像黑客:) 不是用来干坏事 高手呀,能告诉我怎么把OLE drag&drop过程中的图元格式改成增强图元格式? 哪位有http下载的源程序(或下载地址),C++的。。。 哪位大侠有制作均衡器的资料和代码,是否有相关控件?在线急等,先谢谢了 dbgrid焦点问题。 如何识别客户端浏览器是不是腾讯浏览器? 怎么样得到上个月最后一天的天数 关于图片显示的问题? 一个应该很简单的问题!散分了! sybase12安装后sybase server启动不起来,服务启动没有问题 请问oracle JDBC 中classes12.jar、classes12_g.jar、classes12dms.jar这三者有什么区别? ( 召唤HTML编辑控件(ActiveX) 为什么没有遍历所有文件和目录?哪位可以帮忙调试一下。 请问如何再java里面执行oracle数据库指令如;exp,imp等等 高分求助!关于触发器。来者有分!在线等待! 工作累了﹖沒有精神﹖來我這里喝一杯吧﹐ Ghost2001如何备份win2000系统 工作累了﹖沒有精神﹖來我這里喝一杯吧 关于图像缩放求援? 各位老大!有没有用C#写的浏览器的程序? 请问如何再java里面执行oracle数据库指令如;exp,imp等等 C#调用C++写的动态链接库中函数的问题! dns的转发项是灰色,说是根服务器,怎么办? 求助!如何实现鼠标移动Image控件 无法终止程序, 条件判断出问题 ,奇怪 为什么对象释放出错? 在FormDestroy中释放对象时出现 'Invalid pointer operation'的错误。 MDI子窗体在MDI父窗体内不能显示的问题,希望高手指点!!! 小问题,高手行!!! JSP 关于中文乱码 哪位高手请提供下面题目的源代码, 急!!! 【求助】DELPHI中ADO连接DBF库超过256K就显示不出数据? 菜鸟问题 asp调用WORD的问题 安装oracle8.0.5时的小问题 Win2k & WinXP 桌面全空 弱问题,关于SIZEOF 服务器生成的图片发到客户端打印效果不理想,如何解决? IIS的站点一启动就会占用所有IP。如何解决? 如何连接两个数据源 cisco3550交换机如何配置? 快狗里的 conn.asp ,,有一个问题,谢谢大家~!!! 如何用javascript实现字号缩放? 紧急 在线等待 有趣的问题 小弟刚涉及socket不久,望大哥们指点。 主板又无法启动了◎! 关于dataset数据集的问题,请教???? 急呀,快来帮帮我呀! 高分求救网络传数据问题 分不够可以在加 在线等待 急 关于非MDI的非主窗体的最小化问题 工作累了﹖沒有心情﹖來我里喝一杯吧 大家一起来研究下这个问题~~ 选用 there is/are/has(have)填空()a bank on the street()two pay phones on North StreetI()an English dictionary()a hospital near our school 一道英语改句子的题目!On their way to school,they saw a nice watch on the street corner.(保持句意相同)a nice watch on the street corner _______ their _______on their way to school.我填的答案是“caught ,eyes”,答案上写 1.where none(它是什么词性与意思,用NO代替可以吗?) intrudes(它是什么词性与意思)2.i love not man(为什么不用a man?) the less,but nature more.有什么语法词组? 在横线上填上“have,has”或 “there is , there are” .1. I________a good father and a good mother. 2. ____________a telescope on the desk. 3. He_________a tape-recorder. 4. _____________a basketball in the playground. 5. She__________some d 英语改同一句子一题 She said" I'm not French man ,___I don't love PairsA.and B.but C.or为什么? 英语翻译XX,相片已收到,祝你工作顺利,天天开心. 分析一下can may must could might could have分析一下can may must could might could have done might have done等 I am not a smart man,but I know what is love.哪位人士精通英语,请加我好友,980559451 I w____ whether it will rain or not tomorrow.怎么填? 需要一个5分钟的英语小短剧,但是要比较吸引人注意,最好是初一水平,角色2人. can,must,have to,should,may,could,might有语态上有什么区别,怎么区别比如1.___I park my bike here.2.____pass the book to me.3.He____at home.在表示语态的时候, We are not sure if it __(rain) tomorrow.适当形式填空 It( )soon be over,I am sure.这里括号里是Shall 还是Will回答一下为啥,还有把这句话翻译一下,Thank you! 用have,has,there is,there are填空 英语翻译The person we are talking about today is known around the world.He is often described as the man who has saved more lives than any other person is history.N orman Borlaug is c_1__ as the father of what has been called the Green Revliution I will be right here waiting for you!I am sure about it! I wait for you中I是主语,wait是谓语动词,而且是不及物动词,那宾语是for you还是you? Many people today like reading ___ about UFOS以s开头 I am quiet sure of it,too. ( )A:Do you like talking with your friends on the phone .B:_____ .I enjoy using MSN .A .Either B .NeitherC .Both D .None in europe people learn about seven seas,what are theyplease speak in english Let me do it a___.I'm sure it will be OK. 把People use the word friend freely翻译成中意思 在横线上填写适当的词语碧波对_____正如山峰对高耸 Do you have ______ to say to us?A、anything else B、else nothing C、else anythingDo you have ______ to say to us?A、anything else B、else nothing C、else anything D、 nothing else 第三人称后面接的动词形式就是第三人称单数形式 举例 买竞争对手的产品的顾客用英文怎么说 Since people are fond of humor,it is as welcome in conversation as _______ else.A.anything B.something C.anywhere D.somewhere i'm yours lrc 歌词要放在MP3上的,时间一定要准! 英语翻译1 现金排在流动资产的第一位,因为他是最活跃,最具有流动性的项目.2 会计师在记录经济业务时必须遵守会计主体原则.3 账户的左右两边分别称为借方和贷方.4 每个会计期末都要编制 I am still right here waiting for you这句话有没有什么错误 英语主动句改被动句 ,被动句改主动句主动句改被动句people can judge beauty differentlythe postman will deliver the package tomorrow morning被动改成主动tickets can be purchased by customers at the ticket counterall phone call 英语.改句子.1题My generation is different from mu parents' generation.(not the same as) since people are fond of humor,it is as welcome in conversation as anywhere else.两个as,充当什么在这个句子中两个as 充当什么成分能把这个句子翻译一下吗? 英语被动句改成主动句1.When is the sports meeting held in your school?2.The boy hasn't been seen to dance yet 英语不定式的用法be glad to do 和be happy to do 这些短语中不定式作的是什么?目的状语,宾语,还是别的? Is there()to tell us?No,nothing.A.anything new else B.other new anything C.anything else newD.other new something选哪个?为什么? 英语中主动句改被动句,求例子,是怎么个方法 英语改句子的一道题We are going to stay in London for a week(for a week划线)-o- ——are you going to stay in London? 热烈欢迎芬兰豪格佛斯专家莅临指导翻译英文, 英语主动句改被动句Someone had sent Jack to the hospital before the ambulance came. 关于低碳的英语作文(新颖一点的) since people are fond of humor,it is as welcome in conversation as _ else.A.anything B.something C.anywhere D.somewhere选项加解释 英语被动句改主动句主动改被动,被动该主动1.A mistake was made in using too much passive voice2.UFOs were reported by faemers who had seen atrange sights.3.The game was won when a touchdown was scored by the quarterback.4.We were dren 请教关于英语不定式的用法例句:It is not good for your eyes to read in the sun.请问这个句子里面的不定式做状语还是真实主语, I have nothing to tell you中的to tell you是不是定语? 下列形容词比较级large,beautiful,heavy,interesting,quick,small,wide,happy,few 一道改句子的英语题John watched TV after he finished his homework.John ____ _____TV_____he finished his homework It is fifty-four years since the People's Republic of China______A.founded B.was founded C.has founded D.has been founded答案应该是A,为什么?请说明原因, 《祖国啊,我亲爱的祖国》寒~我是干瘪的稻穗,( ).我是失修的路基,( ).我是你挂着眼泪的笑涡,( ).我是你雪被下古莲的胚芽,( ).我是新刷出的雪白的起跑线,( ). 写英语作文时用的新颖词汇.作文时用一些新颖的词汇来代替平常天天都用的词汇,比如用assignment来代替homework就可以给阅卷老师耳目一新的感觉,求大量如此类型的新颖词汇. 化学科普小文章500字左右 麻烦翻译一下Are many of you good at computer games 帮忙做一道英语改句子的题!He has been praised by his boss..(改成否定句)(改成一般疑问句) have\has\there is\are怎样区别,举例 是不是只有第三人称单数动词才发生变化如果不是那一般疑问句中是Does everyone 还是Do everyone 用have,has,there is,there are 填空.1、 How many classes﹍﹍﹍﹍﹍in the morning?2、 Tom ﹍﹍new bag.It looks nice.And﹍﹍﹍a picture of a tiger on this bag.3、 ﹍﹍﹍a plate on the table?Yes,﹍﹍﹍4、 The pupils﹍﹍﹍many be 用 have has there is there are 作文:描述自己的卧室 根据情景填写古诗文,名句和歇后语1.语文老师正在检查作业,可是我昨晚为了看电视没有做,这时我在座位上是“( )”(填歇后语)2.我们的老师指导我们写作时,常常引用宋代著名诗人苏轼
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘