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

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! 移动周报:开发者必须了解的10大跨平台工具 一周热点:领先Google 150年的数据可视化及WhatsApp架构解析 R语言为Hadoop注入统计血脉 海外游戏市场:Google与“开心农场”谈破局 2014年2月操作系统份额:Windows仍在增长 Win 7以47.31%稳居第一 2014年2月份浏览器份额:IE 8仍全球最受欢迎,Firefox跌破18%大关 跨平台2D游戏引擎V-Play:3天开发一款原生游戏 Appery.io:无编程经验,自己也能DIY移动应用 SAP携手Xamarin和Service2Media 提供移动应用开发框架 8个超实用的jQuery技巧攻略 美国国防部战略:大规模、分布式,构建数字化防御体系 针对小白的Python入门教程——Python使用说明书 耗资460亿美元,天价Olympic上广受诟病的监控和4G LSI AIS ASIA首次登陆中国 探讨最新大数据技术 “iOS in the Car”问世 苹果发布集成汽车服务CarPlay Pinterest联合创始人Evan Sharp:视觉网站标配“网格布局”的设计过程 微软Xbox Live或登陆iOS和Android平台 TIOBE 2014年3月编程语言排行榜:F#直逼Top10 Atlassian面向企业客户推出Git Essentials工具 Mt.Gox破产,都是错误编程惹的祸 Jamo创始人揭底AWS,棱镜阴影下的云行业态势 成本、创新、可靠:游戏公司FunPlus选择AWS的三大理由 全透明、可折叠,平板电脑概念机是这样的 插件大集合!开源包管理器Alcatraz迎来Xcode 5更新 Q语言:新型的数据定义语言 非响应式手机网站页面的优化 高薪必备:Hadoop求职者的6大攻略 微软或将于四月发布“返璞归真”的Windows 8.1 Update 1 《近匠》第14期:LiveCode——全民开发工具 help!关于FTP! 甘肃办证要400元 那里能玩四国军棋,除了联众 大家帮忙看一下这个脚本错误! 如何控制 usb disk 弹出和刷新。 怎么保存到数据库中(在线等,马上送分) 我使用CListCtrl的REPORT风格,怎样对报表中的数据进行编辑? 我晕,http://127.0.0.1/index.php?page=3 传不了数据!!!HELP!!HELP!! 关于对ACCESS操作(VB6.0)时,出现乱码的问题???(急!!!) 征求数据库设计方案 sql语句 请大家看看为什么事件函数不能执行? 关于表关联 救命啊,使用FTP的问题! CSS中怎样设置字体的加粗? 我想把菜单可以拖动,就象office的菜单那样,要怎么做呀,谢谢 80分求救 C++Builder开发程序登录问题? 请问GridBagConstraints(有源码) 如何动态更换列表控件前面的小图标? 关于记录修改 用sdk编程怎样加入toolbar? table里的查询字段为什么不会显示数据? c#与interbase请教 C语言的大小问题都在这里面? 不要编译,你猜猜这个程序会有几个类型匹配的警告? 不要编译,你猜猜这个程序会有几个类型匹配的警告? 高分解问,请教高手!关天GIS! 如何判断窗体中的某个控件是textbox控件?或判断窗体中textbox的个数? 如何调用返回不定字段个数的存储过程 那里能找到rational rose 有关FORM与ACCESS数据库的连接 如何使用photoshop把图像缩小到指定大小? 关于某种文件关联的问题 为什么用net send发送的消息有关不掉,点了好多次确定也没用。 怎么保存到数据库中?急急急! 电脑出问题了。 tomcat4.01+apache2.046组合问题:单个的都能运行,...可以加分.. %u的问题 如何调整对话框上工具栏的状态 关于query控件的一个问题 如何结束一个线程? FastReport怎么将没有记录的地方也画上格子??? 我的oracle9装上去之后怎么有7。2G那么大??并且还连不上MANAGEMENT SERVER只能独立启动??请指教!! Fastreport与quickreport那个更好用? 进者有分. 强烈要求铲除全国所有的收容所!!! 要用什么软件才能将CMOS参数备份到某个文件夹中? 请问怎么在建表代码里定义关键字? 请问把数据写入ListView控件内,有什么办法可以快点? win2k server dns 求助! 我在易趣上竞的一个数码相机,只要250元,但是只能拍26张相。我不知道是真是假? 我想知道地球离太阳具体有多远? 在一个正方形中画一个最大的圆,已知正方形的面积与圆面积相差86平方厘米,求正方形的面积 茅塞顿开和一语惊醒梦中人是歇后语吗 什么叫做“相对论”?相对论是讲什么的? 相对论主要讲了什么? 虾爬子 吃什么 东北话的虾爬子吃什么?·· 很好奇耶 452.75的十六次方乘以π 尼比鲁手机摄像头是索尼的吗 T,H,E,E,C,Z,E,V,S拼成单词(每个字母均用上一次) 伤感Q名 短一点的,开头带单词,结尾带符号,要有 俨 字.急用,顺便,再取一个 带有 偌 的Q名,要唯美的.好的也会加分 光滑水平面上的两球做相向运动,发生正碰后两球均变为静止,判定碰撞前两球动量一定相等? 如何观测尼比鲁 "给我一个支点,我能支起整个世界."谁说的?意思是什么? 网络三要素是什么? 求作文向往高地的写作思路如题 茅塞顿开的意思!急用! SEO三要素写作时, 初二作文 《高地》600字 谢谢啦~~~ 9分4除去24等于多少? 出师表中的“为” 一词多义1.俱为一体2.若有作奸犯科及为忠善者3.众议举宠为督 《高地》 是哪区的作文题目2010某区语文作文题目 9 9 9 9如何等于24 作匀速圆周运动的物体运动一周后回到原处,这一周期内物体 (A) 动量守恒,合外力为零.(B) 动量守恒,合外力作匀速圆周运动的物体运动一周后回到原处,这一周期内物体(A) 动量守恒,合外力为零 有关重金属离子特征波长的问题最近导师让查几种重金属离子对应的特征波长,您帮我解释一下这个特征波长指的是什么吗?是与光的共振波长吗?哪里可以查到?比较急,请指教! 《越中览古》与《苏台览古》在表现手法上有何异同?主题有何相同? 存在阻力时,动量守恒吗 广告上说的,该不该相信?为什么?口语交际!广告上说的,该不该相信?为什么 找寻梦想的支点不知道市长咋想的,还搞什么征文,有关实践教育基地的感想帮忙想个题目嘛~急 请问,一支船的船头有水,用抽水机抽水并把水往河中送(向后),根据动量守恒,船一直向前运动.要是把水抽到船尾(船上)呢,是先船要向前运动,水碰到船尾呢,是要回到原来的位置(没有抽 请选择你熟悉的一种文化,从历史、艺术、名胜、民俗民居等角度设计一则广告语,并说明创意.广告语: 创意 谁会写“找寻梦想的支点的征文” 辩论赛. 才比德更重要的陈述、就是论点以及论据 请用哲学角度说明为什么要相信自己,相信他人? 1500字的作文怎么写啊,是关于寻找梦想的支点的作文 相对论主要说的是什么 谁知道详细的2009年3月的天文现象预测? 寻找梦想的支点 征文1500字怎么写能帮忙找点材料 或写些文章吗? 辩论赛 我方是近期目标比远大理想重要 100分跪求一辩陈述立论陈述立论2分钟~大约100字以上了吧. 地球对物体每一个点都吸引那么为什么可以把它的重力等效且集中在重心上呢?那这样的话是不是每一个点都可以看作为重心呢 太阳系有没有第十大行星 雅思作文开头有技巧:如何写好作文的三要素 世界上先有鸡还是单 盼望是什么意思 小电影是什么意思 有癌症的人吐那些口痰会不会传染给别人? 13 行星在什么情况下可以连成一线?多长时间出现一次?出现这种情况对地球有什么影响?会出现什么现象?是吉是凶? 请问“小电影”是什么意思? 太阳系内有一科未知行星正在告诉朝太阳飞来,人称尼比鲁,是真的吗,有谁知道,急! 英语作文成为老师 相对论讲的什么 急救,请伸出你们的手,帮一下小弟,证明:函数y=(1/x)sin(1/x)在区间(0,1]上无界,但这函数不是x->0+时的无穷大.请原谅小弟的愚昧,请问n是什么啊?还有哪里证了其无界啊? 有十三颗行星排成一条直线的事吗?多少年一次? 如图所示,弹簧测力计的示数是10N,拉力F=4N,物体重G=10N,说法正确的是A物体G所受的合力是6NB物体G对支持面的压力是6NC滑轮的重力是2ND当弹簧测力计的示数是22N,物体G只受两个力请每个选项分析 急救!高数极限题,会做的进来帮忙!W=lim(1/X+2^1/x)^x x趋向无穷大 就这个极限 酸+ 什么氧化物→盐+什么 例如: 孤舞独影是什么意思 高数急救啊 2012年世界末日是真的吗?我怕怕!1 在弹簧测力计下挂一实心物体,弹簧测力计的示数是10N,如果把浸没在水中,物体静止时弹簧测力计的示数变为2N,则该物体的密度 急救计算∫ arctanx/(x^2(1+x^2))dx 津巴布韦航空一客机引擎空中着火 成功全球首次大规模男性裸体展 法国美术展联合国调查小组推迟检查叙利亚两处化武首届中沙炼油科技论坛在沙特召开美国西南部遭遇强风沙尘天气 当地交通德国男子以点燃自家公寓要胁 欲与市长奥巴马与以色列总理就伊朗问题进行商谈刘诗诗最新生活美照曝光(组图)一家三口同床时的销魂睡姿 网友惊呆了德一男子以点燃自家公寓相威胁 要求与联合国小组推迟检查叙利亚两处化武场地山西被挖眼男童精神状态良好 约两周后浙江卫生厅副厅长回应杀医案:医疗场所揭秘真正的“贵族”学校 松下塾 日本菅直人博客曝出核能阴谋论 被批可笑之津巴布韦航空一客机引擎空中着火 成功中国核潜艇亮相引猜测 目标针对谁?日本首相每日行踪遭媒体公开 前防卫相中乙群殴1人重伤治疗费无人管 五官被山西被挖眼男童精神状态良好 约两周后中国海军第一艘核潜艇去除核反应堆退役李克强部署救灾:穿绿军装的和穿白大褂川滇两地铁路恢复通车 部分区间限速运李克强:要把救人放在第一位 抓住灾后李克强机舱内的抗震救灾工作会:机上决李克强机上部署救灾工作 强调确保受灾政府埋单补贴 长春市残联提供集中托养省委统战部省工商联省光彩事业促进会向通往震中的便道公路凌晨三点抢通中国扶贫基金会救援队赶赴云南省昭通地川滇两地铁路恢复通车 部分区间限速运深圳:周末围观卡通“阿狸”埃博拉病毒为何难“破”政府埋单补贴 长春市残联提供集中托养以军宣布7小时停火 中国提出五点和平李克强强调必须确保受灾群众“四有”印尼计划大面积种植生物能源林木云南鲁甸“8·03”地震已致巧家县6云南预备役师成功救出一名幸存者古猗园睡莲展延续到8月11日 展出数海西融资服务平台在福州成立俄方指北约秘书长企图对MH17坠机事
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘