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

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、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务。        

期待吗?Linux 4.1将引入大量汇编代码变更! TSMC量产16FF+制程,Apple Watch或将采用Finfet技术 谷歌搜索引擎更新 移动端支持不好的网站排名将受影响 《近匠》格知GUECHI,设计师品牌让你离时尚更近 Apple Watch应用开发经验谈:我遇到的那些坑 约吗?UNITE 2015 BEIJING日程全揭晓! 谷歌扩擴增App搜索結果 已抓取300亿App页面 功耗、联网与交互:可穿戴设备操作系统问题解读 李大学离职京东后:转做投资人,助传统产业“互联网+”转型 Skype Translator实现中英实时语音对话 语音翻译领域又一新突破 如何判断自己是否适合自由职业? 创造&#183;连接&#183;成就:UNITE 2015 BEIJING圆满落幕 IT互联网人才招聘市场特点:人少钱多疯狂抢? React Native并非原生 Instagram Apple Watch应用设计师:对原有App全部重新思考 腾讯网移动端H5页面设计实战分享 Kendo UI和AngularJS常见问题解析 Elevator.js:模拟电梯运行的“返回顶部”JS插件 Java,传奇的一生! 约吗?Java二十周年特别策划——寻找Java大牛! 走近英特尔软件技术王牌之师:系统技术和优化部门 新兴技术袭来,Web开发如何抉择? 新创社交平台Tsu 5周註冊用户破百万秘訣 Google Play:助力中国开发者的海外梦想 JPHP——一款基于JVM的新PHP编译器 舌尖上的CTO——小杨生煎的持续交付 《近匠》滴答清单,跨平台云同步的任务管理工具 DJI与优酷土豆战略合作:提升UGC价值,先内容再营销 Android性能优化典范(二) 从三大运营商联手 看电视游戏背后的现状 【工具推荐】Vert.x——非阻塞、高并发的编程开发框架 微软的面试题 treeview 控件在客户端的操作? 怎样在程序里找无标题的DLG! j2me中请问如果将textField中的内容写入到moto388手机的记事本中? 谁可以和我说一下LINUX是如配置的! 请问:如何在java通过xml文件和他的schema,既得到标签里的内容,有能够知道内容的类型 已修改的列 C++Test讨论区 菜鸟提问,大家不要笑我啊! 这里还有人在用Java IDE工具JawaBeginer的吗? 有谁知道aspopup控件的功能和作用--在线等待 100分,急求控件的编写方法~!!!!我在做的项目想用到类似于vc编译器左边的class,resource,file view的窗口控件,谁有? 简单的菜鸟问题!! 如何写WPE这种类型的软件? 向DX请教两个开发上的问题,请不吝赐教! java中字符串数组,转化为javascript数组,jsp页面显示为乱码,代码如下: 小问题一个 有关QuickStart中示例 求SQL语句,一表值通过另一表更新 关于activebar 2。0 请问哪个中译英的免费软件好一点啊? 大虾救命:TCP编程的客户端端口占用问题 关于记录集的关闭! 本人现在做一个例程时遇到问题,编译后什么反应都没有,请教~~~~ 参数传递问题 刷新 LPCSTR在哪个文件里定义的? 如何判断一个存储过程已经存在??(在线) 关于TOMCAT的配置问题? datawindow的checkbox里可以放图片吗? 关于COMS的问题 interbase 数据库损坏???? 在线等待(100) 怎样使得打印预览文档位于数据窗口的正中间.在线等待...谢谢 在VB中,用ADO怎么才能用oracle的DBLink传输数据 在VC中如何遍历注册表 我好着急,好难过为什么没有人回答 Google是不是又被封了?!这几天怎么都上不去... 如何自启动程序?? LPCSTR在哪个文件里定义的? 全局数据库的含义是什么?(菜鸟问题) 郁闷!有个总要求我哄她的gf,真是郁闷 哪里有vc和ActiveX控件的书籍下载(新手,请多照顾) 一个真实的恐怖故事 下载那个sun one studio mobile edition 数据保存问题 请问高手,这段代码为什么不能发email? 各位網絡編程高手請進,如何抓一網頁數據! 为什么windows xp下没有ghost 除了MS ACCESS外还有什么能编辑ACCESS数据库的软件。 日期转换的问题 ADO方式从Access数据库中读数据形成Tree View后怎样通过TreeView操作数据库 为了使楼房采光好,我国北方的楼间距离理论上比南方要.A.小些 B.大些 C.相等 D.无法确定请说明理由, 动能定理问题在足球赛中,红队球球员在白队禁区附近主罚定位球并将球从球门的右上角擦着横梁踢进球门,如图所示,球门高度为h,足球飞入球门的速度是v,足球的质量为m则红队球员将足球踢 阿拉伯地区建筑朝向每个国家和地区因为地理位置不同,建筑的最好的朝向也不同,比如中国是坐南朝北.那么阿拉伯地区的建筑呢,最有利的开窗朝向是什么? 为什么南美洲中北部人口稀少 假若声速变为0.1m/s,会出现什么现象? 故宫主体建筑的朝向和原因故宫中轴线上建筑的朝向是怎样的?为什么会这样? 在信号处理中,经常会用到卷积,请问卷积的几何意义是什么?卷积为什么用途如此广泛?,请详细介绍, 用来表示总线速率的GT\s是什么单位?它跟GHz的区别是什么,两者如何换算成GB\s 建筑朝向问题(左到右)节能计算后,得出文本中:北向角度130°.在cad中需要 填写建筑朝向.请问北向角度130° 要怎么转化表示为像北偏西、南偏西等等这样的建筑朝向.以及方法请说清楚点 褶积的物理意义是什么希望能更具体一点,数学所对应的物理现象是什么。 530×7-G-S-GB/T3452是什么意思 Excel 中IF函数的解释=IF(IF(($E$5+$E$8-SUM(H47:$H$49))0,0,IF(($E$5+$E$8-SUM(H47:$H$49)) 褶(卷)积求解求褶积时if语句中为什么要i-j<=M-1 微积分作函数的图形题目求教!1.作函数Y=x^2/X+1的图形2.作函数Y=『4(x+1)/x^2 』-2的图形 什么是浸润液体?浸润液体除了水银还有别的吗? 下列各点同时符合东半球,南半球,中纬度三个条件的点是A.45°E,45°S B.15°W,45°N C.45°W,45°S D.165°E,25°S 俄罗斯地理环境布置的作业,可以做完A2手抄报的.要求不要太复杂,初一看得懂的就行(初一内容:经纬度,五大地形,天气与气候,人种).只关于俄罗斯,其他的不要说.最好帮忙把条理弄成写手 毛细现象为什么在浸润情况下液体上升?浸润情况是什么 地点符合低纬度、南半球、东半球的地点是 动能定理的问题动能定理定义是动能变化量等于合外力做功 ,我想问.一光滑斜面上有一木块,以沿鞋面的力由静止向鞋面上推,达到一点时,高度为h 那么合外力做的功W=mgh+1\2mv^2. 光速的测定2.激光测速法(大学课本) 1970年美国国家标准局和美国国立物理实验室最先运用激光测定光速.这个方法的原理是同时测定激光的波长和频率来确定光速(c=νλ).由于激光的 两个非周期的信号卷积后可周期吗?两个周期信号卷积是周期的吗?一个周期信号和非周期信号呢? 光速是怎么测量出来的? 怎么从分子角度来解释浸润液体的浸润? 点d为什么是对的,它在南半球,应该是在运动方向的左边啊 一到初中科学竞赛题两桶水里都有为融化的冰块,一桶放在炉火旁,一桶放在地窖,那桶水的温度高?哪桶水中的冰熔化得快些 为什么液体会浸润或不浸润?如,毛细现象 高中有关解释 机械能守恒定律 的问题一个小球在真空中自由下落、另一个同样的小球在粘性比较大的液体中由静止开始下落.它们都由高度为h1的地方下落到高度为h2的地方.在这两种情况下, 记号笔的墨水弄在了手上,有什么可以去除就是那种油性的黑色的记号笔墨水 微积分多元函数问题,如图24题, 机械能守恒定律的问题加速上升的电梯顶部悬有一轻质弹簧,弹簧下端挂有一铁块,若电梯突然停止,以电梯底板为参照物,铁板在继续上升的过程中A,动能先增大后减小B.动能逐渐减小C.加速度逐 地转偏向力在南半球则都向左,按照上述理论,可否得出结论,南半球的地震多半在大陆左边? 建筑物朝向以什么来判判断 有ABCDEF六种无色透明液体,它们各是NaCl溶液.有ABCDEF六种无色透明液体,它们各是NaCl溶液NaOH溶液稀盐酸稀硫酸澄清石灰水蒸馏水中的任一种.为了鉴别它们进行以下实验:各取少量液体于试管中 早晨,面对太阳站着,我的前面是()方,后面是()方,我的左边是()方,右边是东()方? 已知一个函数的解析式为y=x²,它的值域为[1.,4],这样的函数有多少个?试写出两个. 如果氯化钠液体里有稀盐酸,蒸发后会得到纯净的氯化钠吗? 什么是卷积运算?有什么用处? 看到一颗恒星的光谱,要怎样知道这个恒星是发生红移或者是蓝移? 能将NaCl ,BaCI2 ,Na2CO3这3种无色液体一一区别开来的试剂是?A.KOH B.KNO3 C.CaCO3 DH2SO4最好可以把化学方程式写出来 卷积是分析数学中一种重要的运算//(f*g)代表什么意思?设:f(x),g(x)是R1上的两个可积函数,作积分(如右图):可以证明,关于几乎所有的实数x,上述积分是存在的.这样,随着x的不同取值,这个积分 已知函数f(x)是定义在(-3,3)上的奇函数,且该函数在(0,3)上的解析式已知函数f(x)是定义在(-3,3)上的奇函数,且该函数在(0,3)上的解析式为y=x^2-2x+3(1)求f(x)在(-3,0)上的解析式(2)求f(x)在(-3,3) 2.3.4.题怎么写? 我们物理老师给出的题:假设声速由340m/s,变为0.1m/s,那么说出三种可能的场景.是说在三种场景里会发生这样的事还是这样之后会发生什么? 如何在MATLAB中对二阶方程x ’-0.3x ’+1.4x=0.5u(t)建模仿真, 体积看不清楚么?体积(cm3)表面积(cm2) x^(2/3)怎么用微积分来画函数图像 把玉石等饰物挂在脖子上的绳子可松紧的结是怎么系的 关于弹性势能的问题关于弹性势能,下列说法正确的是( )A.弹簧不发生形变也具有弹性势能B.物体只要发生弹性形变就具有弹性势能C.弹簧被压缩时具有弹性势能,被拉长时不具有弹性势能D. 如果函数在某一处的切线恰好在该处穿过函数图象,说明什么 光速永远不变吗?永远是299 792 458米/秒吗?跟宇宙空间大小有关吗? 弹性势能的问题为什么 只有弹簧在发生弹性形变是才具有弹性势能 是错的 液体蒸发属于什么变化下列变化属于化学变化的是( )A 鸡蛋变臭B 酒精与水混合C 石蜡熔化D 液体蒸发 把5根短绳结成一根长绳一共要打几个结 有关弹性势能的问题一轻质弹簧的两端连接滑块A和B 已知A质量0.99千克 B质量3千克 放在光滑水平面上 开始时 弹簧处于原长 现滑块A被水平飞来的质量为10克 速度为400米每秒 的C(子弹) 击中 微积分多元函数微积分问题,如图第23题, 窗帘上绑绳的绳结打法绑窗帘送到的绳子原先的结是现成打好的,不小心被我弄散了就再也扎不回去了,求教如何打这个结,上图 弹性势能怎样求 微积分多元函数问题,如图16题, 把6根短绳结成一根长绳,一共要打几个结 中俄舞台艺术对话举办美媒:监听活动曝光迫使美停止炒作“中查尔斯的阿Q精神?日欲解禁武器出口 妄图“一箭三雕”印东北部连环爆炸5人亡埃前少校疑刺杀内政部长纽约华裔社区发生命案5人被杀16名沙特女性因驾车挨罚美国佛州举办基韦斯特大街化妆舞会游行窃听默克尔,奥巴马早就知情?亚洲最大规模“同志”游行争奇斗艳(高土耳其肉夹馍“创始人”在德国去世享年菲律宾:对香港人质事件赔款不用公款 中国游客成韩免税店最大买家 赴韩人数收入分配改革或从初次分配“提低”突破女子3个月内分饰24角骗40名男子 男子与15岁少女发生性关系 因女子胸温州女教师深夜家门口被袭胸(图)美国国家安全局:奥巴马对默克尔被监听温州办公用房改革搁浅 官方表示执行起感召侨商回归 聚焦浙江发展纪念奥黛丽赫本逝世22周年,她的人生朱立伦请假3个月投入2016选战 市徐新独家解读:资本青睐怎么样的创业者力挽新北铁票区 朱立伦带职参选201台\"气象局\":台风巨爵将朝台湾陆财经网评 | ​山东高速十年净利润累三个“梅超风”来袭 马鞍山重启阴雨模【公告】艾果智集蛋获奖名单盘点女性开车5大驾驶陋习大宗商品 | 某医疗器械公司股权融资圣地亚哥海洋世界的旅游攻略投资是艺术而非科学纸胶带的各种巧妙创意 惊艳你的生活~杨颖 (AngelaBaby) 登《马鞍山人的日子真心蛮难过的 终于有好机构半月调研最多的50家公司 电子和伽人动作瘦颈肩——敬礼式,秀出美丽颈Love\\\'s Philosop素之颜告诉你素颜也美丽的秘密维克多的专业投机原理一键呼叫一个亿 平安壹钱包联手UB
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘