阅读更多
摘要:最新消息,Databricks的Spark与UCSD的TritonSort两个系统在2014 Daytona GraySort比赛上并列第一。为了对比赛有更好的了解,笔者特采访了Databricks 辛湜(Reynold Xin),并就Spark社区中的一些热门趋势进行探讨。
据Sort Benchmark最新消息,Databricks的Spark与加州大学圣地亚哥分校的TritonSort两个系统在2014 Daytona GraySort排序比赛上并列第一。其中,TritonSort是一个多年的学术项目,使用186个EC2 i2.8xlarge节点在1378秒内完成了100TB数据的排序;而Spark则是一个生产环境通用的大规模迭代式计算工具,它使用了207个EC2 i2.8xlarge节点在1406秒内排序了100TB的数据,在“前文”中我们曾详细介绍过。



为了更好的了解这次比赛始末,以及当下Spark社区中存在的一些热门问题,笔者特采访了Databricks的辛湜(Reynold Xin,@hashjoin)。(PS:感谢@徽沪一郎的技术支持)
以下为采访原文

CSDN:本次比赛的规则?考量的是哪些方面?


辛湜:这个比赛最早是由Jim Gray(对数据库领域做出了不可磨灭贡献的图灵奖得主)在八十年代提出的,测量计算机软件和硬件性能优化上的提升。这个比赛有多个不同的类别,其中最有挑战性的类别就是测量参赛系统在多快的时间内能排序一定量的数据。

最早始的时候Jim Gray制定的比赛规则要求参赛者排序100MB的数据,到了2001年数据量上升到了1TB。2007年Jim Gray出海航行失踪之后比赛由一个委员会负责举办。2009年为了纪念Jim Gray,将最有挑战的类别改名为了Daytona GraySort,并把数据量提升到了100TB。除此之外,这个类别还有很多苛刻的规则,比如说所有的排序输出必须在不同的节点上复制,使得储存数据能够容纳节点的消失,排序系统必须能够支持任意长度的,并且能够排序分布极端不均的数据。

大赛委员会非常认真,会对参赛系统和技术报告进行长达一个月的审核。详细规则可以参见大赛官方网页: http://sortbenchmark.org/FAQ-2014.html

这个比赛参赛系统一般都出自规模很大的公司(Microsoft、Yahoo和当年的Tandem、DEC)或者学术机构(UC Berkeley, UCSD加州大学圣地亚哥分校)。有不少的参赛者为了提高性能会专门为这个比赛特制一些硬件系统和软件系统。

CSDN:Spark以什么样的成绩获得了比赛的第一名?与其他参赛者对比如何?

辛湜:我们基于Spark搭建的系统用了207台Amazon EC2上的虚拟机,在23分钟内排序了100TB的数据。去年的冠军Hadoop用了2100台Yahoo内置的机器,花了72分钟。相比之下,我们用了不到十分之一的机器,排序速度是Hadoop记录的三倍。值得注意的是这是比赛历史上第一次基于公有云的系统获得了第一。

大赛委员会曾告知参赛系统每年都非常多,但是因为这个大赛最终只会通告冠军,所以我们并不知道究竟有多少其他的参赛者。

今年有两个系统并列第一:Databricks的Spark和UCSD的Themis都花了23分钟左右的时间。Themis是一个多年的学术项目,专门研究如何高效的shuffle数据和排序,为此他们牺牲了很多通用系统需要的功能,比如说容错性等等。Spark作为一个通用系统,能够在一个排序比赛里面和UCSD的Themis并列第一是一件非常不容易的事情。一个有趣的事情:带领Themis团队的George Porter教授也是Berkeley毕业的博士,所以最后是两个Berkeley校友并列第一呵呵。

CSDN:什么样的特性让Spark获得如此优异的成绩,是否可以从技术角度详细分析一下?

辛湜:这个成绩主要归于三点:我们前期对Spark工程上的投入,Spark的灵活性,以及我们团队自身对大规模系统优化的经验。

Databricks成立之后我们加大了对Spark工程系统上的投入,有不少的资源都用来提高shuffle的性能。谈到排序,其实最重要的一部分就是shuffle,在提升shuffle方面最近有三个工作对这个比赛影响很大:

第一个是sort-based shuffle。这个功能大大的减少了超大规模作业在shuffle方面的内存占用量,使得我们可以用更多的内存去排序。第二个是新的基于Netty的网络模块取代了原有的NIO网络模块。这个新的模块提高了网络传输的性能,并且脱离JVM的GC自己管理内存,降低了GC频率。第三个是一个独立于Spark executor的external shuffle service。这样子executor在GC的时候其他节点还可以通过这个service来抓取shuffle数据,所以网络传输本身不受到GC的影响。

过去一些的参赛系统软件方面的处理都没有能力达到硬件的瓶颈,甚至对硬件的利用率还不到10%。而这次我们的参赛系统在map期间用满了3GB/s的硬盘带宽,达到了这些虚拟机上八块SSD的瓶颈,在reduce期间网络利用率到了1.1GB/s,接近物理极限。

准备这次比赛我们从头到尾用了不到三个礼拜的时间。这个和Spark本身架构设计的灵活使得我们可以很快的实现一些新的算法以及优化密切相关。

CSDN:关于SQL的支持。SQL on Spark是个老生长谈的问题,前一阶段终止Shark,并开启Spark SQL项目,可否具体谈谈原因?另外,Spark SQL的规划是什么?当下对SQL的支持如何?大家期待的SQL92或者以上的标准什么时候能得到满足?

辛湜:Shark对Hive的依赖性太强,而Hive自身设计比较糟糕,有大量传统遗留的代码,使得Shark在新功能上的更新非常缓慢。去年年中的时候Michael Armbrust(Spark SQL主要设计者)在Google内部设计F1的新一代的query optimizer。当时他有一个新的设计想法(Catalyst),我们和他交流之后感觉这个新的架构借鉴了过去三十年学术和工业界研究的成果,再加上了他自己新颖的诠释,和传统的架构相比更灵活,有很大架构上的优势。花了几个月时间我们终于说服了Michael加入Databricks,开始Spark SQL的开发。

Spark SQL现在可能是最大的Big Data SQL开源项目,虽然从开源到现在不到半年时间,已经有接近一百位代码贡献者。和Spark的灵活性一样,Spark SQL的架构让开源社区可以很快的迭代,贡献新的功能,很多类似SQL92的功能都有不少开源社区的贡献者感兴趣,应该都会很快得到实现。

CSDN:关于计算方面。运行Spark时,应用的中间结果会通过磁盘传递,势必会影响到性能,而业内李浩源的Tachyon可以剥离spark,并且对HDFS文件系统有很好的支持,在不更改用户使用情况下大幅度提高性能,当下也受到Intel、EMC等公司的支持,在Spark生态圈发展良好。那么Databricks对这方面的打算是什么?提供更原生的支持,或者是提升自己的?

辛湜:Spark的中间结果绝大多数时候都是从上游的operator直接传递给下游的operator,并不需要通过磁盘。Shuffle的中间结果会保存在磁盘上,但是随着我们对shuffle的优化,其实磁盘本身并不是瓶颈。这次参赛也验证了shuffle真正的瓶颈在于网络,而不是磁盘。

Tachyon印证了储存系统应该更好利用内存的大趋势。我预测未来越来越多的存储系统会有这方面的考虑和设计,Spark项目的原则就是能够更好的利用下层的储存系统,所以我们也会对这方面做出支持。

值得注意的是,把shuffle数据放入Tachyon或者HDFS cache(HDFS的新功能)其实不是一个好的优化模式。原因是shuffle每个数据块本身非常的小,而元数据量非常的多。直接把shuffle数据写入Tachyon或者HDFS这种分布式储存系统多半会直接击垮这些系统的元数据存储,反而导致性能下降。

CSDN:算法方面考虑。大数据的核心在数据建模和数据挖掘,那么对于算法玩家来说,对R等语言的支持无疑很有必要。而据我所知,当下Spark 1.1发行版还未包括SparkR,那么这方面的roadmap会是什么?

辛湜:SparkR是Spark生态系统走入传统data scientist圈很重要的一步。Databricks和Alteryx几个月前宣布合作开发SparkR。这个项目不在Spark自身主要是因为项目许可证(license)的问题。R的许可证和Apache 2.0冲突,所以SparkR短期内应该会以一个独立项目的形式存在。

CSDN:数据仓库互通。上面说到了数据的计算,那么数据的计算将存向何处?你们在工作中看到用户使用的常用数据仓库是什么?Cassandra还是其他?Spark更看好哪些数据仓库?更看好哪些NoSQL?是否已经有打通数据仓库的计划,提供一个更原生的支持,这里的趋势是什么?

辛湜:和对储存系统的态度一样,Spark本身不应该限制用户对数据库的使用。Spark的设计使得他可以很容易的支持不同的储存格式以及存储系统。我们希望对最热门的几个数据库,比如说Cassandra能够有原生的支持。

在Spark 1.2里面我们会开放一个新的储存接口(API),这个接口使得外界储存系统和数据库可以非常容易的连接到Spark SQL的SchemaRDD,并且在查询时候optimizer甚至可以直接把一些过滤的filter直接发送到实现这个接口的数据库里面,最大限度的利用这些数据库自身的过滤功能减少网络传输。

目前我们内部很多存储格式和系统的实现(比如说JSON, Avro)都已近转移到了这个新的接口。1.2虽然还没有发布,但是已经有很多社区成员开始了对不同数据库的实现。我预计未来绝大多数的数据库都会通过这个接口和Spark SQL集成起来,使得Spark SQL可以成为一个统一的查询层,甚至在一个查询语句里面利用多个不同数据库的数据。
  • 大小: 20.3 KB
来自: CSDN
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 专访许鹏:谈C程序员修养及大型项目源码阅读与学习

    这里我们为大家分享许鹏的源码阅读经验、C程序员的修养以及Spark和Storm源码走读博文。对许鹏的第一印象来源于其Bolg的粗读,最早时候更准确说应该是博文的粗略统计——1年零6个月完成55篇以上的博文,基本每篇都...

  • 羊皮卷之二:我要用全身心的爱来迎接今天

    我要用全身心的爱来迎接今天。  因为,这是一切成功的最大秘密。强力能够劈开一块盾牌,甚至毁灭生命,但是只有爱才具有无与伦比的力量,使人们敞开心扉。在掌握了爱的艺术之前,我只算商场上的无名小卒。我要让爱成为我最大的武器,没有人能抵挡它的威力。  我的理论,他们也许反对;我的言谈,他们也许怀疑;我的穿着,他们也许不赞成;我的长相,他们也许不喜欢;甚至我廉价出售的商品都可能使他们将信将疑,然而我的爱心一定

  • 《世界上最伟大的推销员》 里的十张羊皮卷

    羊皮卷之一  今天,我开始新的生活。  今天,我爬出满是失败创伤的老茧。  今天,我重新来到这个世上,我出生在葡萄园中,园 内的葡萄任人享用。  今天,我要从最高最密的藤上摘下智慧的果实,这葡萄藤是好几代前的智者种下的。  今天,我要品尝葡萄的美昧,还要吞下每一粒成功的种子,让新生命在我心里萌芽。  我选择的道路充满机遇,也有辛酸与绝望。失败的同伴数不胜数,叠在

  • 羊皮卷1

    今天,我开始新的生活。    今天,我爬出满是失败创伤的老茧。    今天,我重新来到这个世上,我出生在葡萄园中,园内的葡萄任人享用。    今天,我要从最高最密的藤上摘下智慧的果实,这葡萄藤是好几代前的智者种下的。    今天,我要品尝葡萄的美昧,还要吞下每一粒成功的种子,让新生命在我心里萌芽。    我选择的道路充满机遇,也有辛酸与绝望。失败的同伴数不胜数,叠在一起,比金字塔还高。  然而,我

  • 羊皮卷的故事-第二章

    就这样,一辆盖得严严实实的马篷车从大马士革出发了。车上装载着各种证明文件和黄金,就要分送到海菲的每个帐房手中。从乔泊的欧贝特到帕特拉的鲁尔,每个帐房都收到了海菲的厚礼。他们得知主人退休的消息,个个目瞪口呆,不知说什么好。篷车驶过最后一站,它的使命就全部完成了。 于是,曾经显赫一时的商业王国从此不复存在。 伊拉玛心情沉重,觉得很难过。他差人禀告主人,说库房已经空空如也,各地分行再也看不到那人人引...

  • 羊皮卷之二 我要用全身心的爱来迎接今天

    我要用全身心的爱来迎接今天。 因为这是一切成功的最大秘密。强力能够劈开一块盾牌,甚至毁灭生命,但是只有爱才具有无与伦比的力量,使人们敞开心扉。在掌握了爱的艺术之前,我只算商场上的无名小,我要让爱成为我最大的武器,没有人能抵挡它的威力。 我的理论他们也许反对,我的言谈他们也许怀疑,我的穿着他们也许不赞成,我的长相他们也许不喜欢,甚至我廉价出售的商品都可能使他们将信将疑。然而我的爱心一定能够温软他

  • 专访Databricks辛湜,谈Spark排序比赛摘冠及生态圈热点-2014

    为了对比赛有更好的了解,笔者特采访了Databricks 辛湜(Reynold Xin),并就Spark社区中的一些热门趋势进行探讨。 据Sort Benchmark最新消息,Databricks的Spark与加州大学圣地亚哥分校的Trito

  • Spark框架深度理解二:生态圈

    前言 由于Spark框架大多都搭建在Hadoop系统之上,要明白Spark核心运行原理还是得对Hadoop体系有个熟悉的认知。从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解这篇博客大家...Spark生态圈以Spark Core为核心,从HDFS.

  • 专访黎万强:谈扁平化与参与感

    2010年成立,从AndroidROM开发,到推出自有品牌智能手机,再到今天向智能家居领域延伸,小米的发展经历各种质疑,但与传统手机巨头的竞争中,小米走出了一条属于自己的移动互联网模式的智能手机新玩法的道路。...

  • Spark入门实战系列--1.Spark及其生态圈简介

    1、简介 1.1 Spark简介 ...Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、S

  • 羊皮卷-选择的力量(二)

    羊皮卷-选择的力量(二)【美】马·丁科尔解读: 其实不存在应该选这,不应该选这,我们应当知晓的一点是,我们的过去、现在和未来都是我们选择的结果。 (运用你选择的力量)如果我们选择吃得太多并因此生病的话,该怪谁呢?如果我们选择将车开得太快以至于最终出车祸的话,该怪谁呢?如果我们选择使自己的性格龌龊,令人讨厌,该怪谁呢?如果我们要把钱带进棺材,成为“坟墓中最富有的人”,却使自己成了病人的话,该怪谁呢

  • 羊皮卷之一:今天,我开始新的生活

    今天,我开始新的生活。  今天,我爬出满是失败创伤的老茧。  今天,我重新来到这个世上,我出生在葡萄园中,园内的葡萄任人享用。  今天,我要从最高最密的藤上摘下智慧的果实,这葡萄藤是好几代前的智者种下的。  今天,我要品尝葡萄的美味,还要吞下每一位成功的种子,让新生命在我心里萌牙。  我选择的道路充满机遇,也有辛酸与绝望。失败的同伴数不胜数,叠在一起,比金字塔还高。  然而,我不会像他们一样失败,因

  • 羊皮卷二我要用心中的爱来迎接今天(中英对照)

    /********************************************************************************************销售圣经:神奇的羊皮卷羊皮卷二author:chinayaosir qq:44633197摘录:世界上最伟大的推售员一书date:08/17/2011blog:http://blog.csdn.net/chinay

  • (羊皮卷二)我要用全身心的爱来迎接今天

    我很喜欢的文章,我将它记录在此,以时刻警醒自己,同时也希望正在阅读的您一起喜欢。每一个字符都是亲手敲击出来的。它属于自己,也属于您。亲若喜欢,不必客气,请顺手拿走。 谨以此文献给所有寻找人生价值的人。     我要用全身心的爱来迎接今天。     因为,这是一切成功的最大秘密。强力能够劈开一块盾牌,甚至毁灭生命,但是只有爱才具有无与伦比的力量,使人们敞开心扉。在掌握了爱的艺术之前...

  • 专访BruceDouglass,谈嵌入式经验

    BruceDouglass是嵌入式与UML应用资深专家,拥有30余年从业经历,他也是《C嵌入式编程设计...对不同领域的涉猎,让我有着更强的推理分析能力及更宽阔的视野。举例来说,我为几家公司做顾问时,经常发现其内部的明显错

  • 专访QQ大数据团队,谈分布式计算系统开发

    他们前身是QQ成立之初后台3个基础团队之一的QQ运营组,当下致力于腾讯内部的分析系统,在离线及交互式计算系统上积累了大量经验,更是面向应用的数据解决方案ADs的作者。NoSQL是笔者最早接触大数据领域的相关知识,...

  • Spark及其生态圈简介

    1、简介 1.1 Spark简介 ...Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL、Spark

  • Databricks核心成员专访:感受Spark的蓬勃发展-2013

    摘要:来自Andreessen Horowitz的1400万美元投资,...CSDN再次采访了Spark的核心成员、Databricks的联合创始人辛湜。 今年4月份,CSDN曾采访过来自UC Berkeley计算机系AMPLab的博士生辛湜(英文名Reynold Xin

  • Spark入门学习交流—Spark生态圈

    spark运行时的架构  在分布式的环境下,spark集群采用的是主/从结构。在一个spark集群中,有一个节点负责中央协调,调度各个分布式工作节点。这个中央协调节点被称为驱动器节点,与之对应的工作节点被称为执行器...

Global site tag (gtag.js) - Google Analytics