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

对话Spark核心作者Ion Stoica:我的编程之路从2KB内存开始

HTML文档下载 WORD文档下载 PDF文档下载
Ion Stoica是UC Berkeley计算机教授,AMPLab共同创始人,弹性P2P协议Chord、集群内存计算框架Spark、集群资源管理平台Mesos都出自他。CSDN与英特尔中国研究院首席工程师吴甘沙共同完成了对Ion的对话。

大约一个月前, Ion Stoica和他创立的创新公司 Databricks再次成为大数据行业关注的焦点:Databricks获得了来自Andreessen Horowitz 1400万美元投资,Cloudera宣布联合Databricks提供Spark企业级服务。

Databricks由Ion Stoica与麻省理工学院计算机科学助理教授Matei Zaharia、UC Berkeley计算机科学教授Scott Shenker等共同创办,Scott还是知名SDN公司Nicira的联合创始人及CEO。Databricks专注于Spark技术的产品化。

一个月前,CSDN向Ion Stoica发出采访邀请。在漫长的等待回复期间,Databricks完成了以上两项里程碑式的演进。

图:Databricks团队成员

后排从左向右依次为:Andy(Spark Summit的组织者)、Arsalan(曾在麦肯锡主管大数据以及IT策略管理咨询)、Matei Zaharia、Ion Stoica、Scott Shenker、Mike Franklin(AMPLab director)

前排从左向右依次为:Ali( 分布式系统、分布式算法以及调度系统专家)、辛湜(Shark的作者,Spark核心成员)、Patrick(Sparrow的作者之一,也是Spark其中一个最重要的贡献者)、Aaron(Databricks工程师)

对话中,Ion Stoica强调了Spark和Mesos与Hadoop软件堆栈的合作关系,Saprk的演进方向和数据挖掘的强化,以及BDAS的远大目标。对话全文如下:

CSDN:Spark已经显示出相对于Hadoop的优势,在你看来,Spark还需要哪些方面的完善?

Ion Stoica:Spark相对于Hadoop的主要优势是高性能和易用性。Spark的高性能源于其采用内存储存数据,应用可以以内存的速度进行运算。它的易用性在于通用的API,使用户可以编写复杂的并行计算程序,使之看上去就像串行程序。这让Spark程序更容易开发和读懂。

未来,我们将在几个方面完善Spark。我主要谈谈两个主要方面:

  1. 开发强大的库,方便用户开发复杂的应用。目前,Spark提供了MLlib,这是一个机器学习(ML)的核心算法集。我们会继续扩展MLlib,并发布其它库。另一个库是将马上发布的GraphX,它将支持高效的大规模图算法。
  2. 提升性能。我们希望在以下几个方面提升性能:a. 允许多个Spark环境(context)可靠地共享内存中的数据;b. 支持更快的key-value查找;c. 支持细粒度读,如果可能的话,还包括细粒度写。

此外,我们正致力于更好地集成和支持Python生态系统,因为我们注意到用户对Python编程有着强烈需求。

CSDN:你创立了Databricks,接下来有哪些计划?

Ion Stoica:Databricks还处在隐身状态,所以很遗憾,我现在不能谈太多。不过,Databricks的使命很简单——“建立最好的计算平台,致力于数据的价值挖掘”。这一平台基于Spark、Shark和其他一些我们过去几年中在Berkeley AMPLab开发的组件。另外,我强调,Databricks坚定地建立开源的Apache Spark平台。

CSDN:Mesos是你们开发的另外一个项目,这个项目有哪些特别之处?

Ion Stoica:Mesos是第一个支持多种集群计算框架的资源管理平台,支持Hadoop、Spark及Storm等共享同一数据中心的资源。这将带来两方面的好处,首先能提升资源利用率,计算框架能够获得其他框架不用的资源。同时,能提升性能,不同的计算框架可以共享同一集群的数据(不需要在不同的集群之间移动数据)。

Mesos展示出两方面特性。首先,支持细粒度共享,在任务级别(而非作业级别)共享资源,而每个任务可能只有短短的几秒。其次,Mesos具备高度扩展性,它用C++开发并使用了模块化架构,让上层框架决定哪个任务被调度、何时被调度 (而Mesos调度器只决定哪些资源分配给那个上层框架,这是二层调度中的底层调度)。这让Mesos可以扩展到数万台物理机,同时运行数百万的任务。

CSDN:AMPLab更宏伟的一个愿景是BDAS(Berkeley Data Analytics Stack),您能描述一下BDAS吗?它能做什么?多久能够实现这样的愿景?

Ion Stoica:正如其名,BDAS是我们过去几年在Berkeley开发的一个大数据分析软件堆栈。BDAS的所有组件都是开源的,在社区的帮助下,我们希望它能在工业界、学术界和其他科研组织广泛使用。

BDAS由资源管理层(Mesos)和计算层(Spark)组成。Spark是BDAS的执行引擎,就像MapReduce与Hadoop的关系一样。在Spark之上,我们实现了几个组件来处理不同的工作负载,包括Shark——用于支持SQL API,SaprkStreaming——用于流计算,MLlib——高质量的机器学习算法库,以及 BlinkDB——一个采用近似技术的查询引擎,通过采样技术实现大规模的交互式查询。此外,我们还开发并建立了 Tachyon,一个支持多Spark实例高效共享内存数据的存储层。

BDAS的核心是支持那些Hadoop不能优化执行的工作负载,比如低延迟查询,流式和迭代计算。这将让用户更快速地分析数据并作出决策,最终将提升企业和组织的投资回报率。

好几个BDAS的组件已经可以获得。Spark、Shark和Mesos已经在一些企业中用于生产环境,包括Twitter、Yahoo!、苹果公司和Intel。例如,Mesos目前在Twitter运行了超过6000个节点,有数百个工程师在使用它。Mesos和Spark都是Apache项目,有活跃的开源社区做支撑。例如,Spark有来自23个公司的超过90个贡献者。

作为对Mesos、Spark和Shark的补充,我们发布了alpha版的SparkStreaming、Tachyon、MLlib和BlinkDB。展望未来,我们计划发布一个图计算引擎——GraphX,以及MLbase——一个机器学习框架,它提供了声明式接口(说明做什么而非怎么做),允许非专业人员使用复杂的机器学习算法。
非常重要的一点是,BDAS和Hadoop软件堆栈是互补关系(而不是竞争关系),两者在多个层次可以互操作。首先,BDAS并没有自己的文件系统,所以它可以使用Hadoop文件系统(HDFS)。其次,Spark可以运行在Hadoop YARN上,替代Mesos。第三,Hadoop也可以运行在Mesos上。第四,Shark兼容Hive,后者是Hadoop上面最流行的SQL解决方案。

图:Timex Sinclair 1000

CSDN:你从什么时候开始意识到,计算机科学是自己未来的工作?什么促使你作出这样的选择?

Ion Stoica:我在上高中的时候有了第一台属于自己的电脑—— Timex Sinclair 1000,它只有可怜的2KB内存和16KB扩展内存,不过我立即沉迷于探究通过几行BASIC代码我到底能做到什么。

CSDN:能否预告下您将在第七届中国大数据技术大会(Big Data Technology Conference 2013,BDTC 2013)上分享的话题?

Ion Stoica:我会聊聊BDAS。 

Ion Stoica:在回答以下这些技术问题前,我声明一下,最新的Spark发行版中的大多数代码贡献来自于AMPLab和Databricks之外,我们希望这种局面在未来能持续下去,因此我的回答只能代表未来Spark项目的一部分。

吴甘沙:Spark是一个粗粒度数据并行计算框架,在一些机器学习和数据挖掘(MLDM)算法上表现并非最优,因为其需要细粒度异步更新(如图并行计算)。GraphX向图并行计算迈出了一步,但它并不像PowerGraph那么高效。鉴于BDAS跟机器学习密切相关(如MLBase/MLlib),Spark将如何演化以便更好地解决细粒度和异步更新问题? 

Ion Stoica:这是一个非常好的问题。是的,在其核心,Spark执行的是粗粒度的操作。这使得Spark可以限制世系(lineage)的长度,从而能在出错时有效地实现恢复。然而,正如你提到,有些机器学习和图算法在细粒度操作下可以获得显著提升。未来,你将看到Spark增加这方面的支持。首先,我们计划增加索引功能,这将用于细粒度读操作。在更下一步,我们希望支持增量更新,这可以显著地减少写操作的代价。 

吴甘沙:为了打破MLDM算法的并行障碍,人们正在讨论有限过期性(bounded staleness),Spark会在语言这层支持吗?

Ion Stoica:有限过期性是一种有趣的概念,我们发现它在key-value数据存储的语境中有用武之地。在更一般化的情形下,忽略“掉队者(执行异常地慢的任务)”,代价是计算精度上略有损失,这在提升性能上很有价值。我们正在Spark上调研这些想法,但并没有马上将其加入到Spark的计划。

吴甘沙:为了更好地移植复杂算法到Spark,开发者最好要去了解Spark底层实现的细节。Spark团队会提供设计模式或最佳实践吗?Spark会提供非常成熟的编译器(去替代调度程序)来自动化代码调优吗?

Ion Stoica:是的,我们期待一些设计模式的出现,在更多应用开发的过程中得到实用。我们也在开发一些高质量的库(如MLlib、GraphX),通过这些库用户将实现更高效、高度可扩展的算法。此外,我们正致力于把更多的性能度量指标开放给应用开发者,帮助他们优化应用。 

最后,我们正在优化Spark应用的执行计划,这也许最终将变成一个完整的编译器。 

吴甘沙:Spark现在还不能利用硬件层的数据并行性,Java代码生成器无法获知数据并行语义,因此其生成的代码不能使用单指令多数据流(SIMD)。Spark会把这个作为一个机会吗? 

Ion Stoica:是的,我们正在评估这个机会。不过,我们才刚刚起步,现在还没有太多可以分享的。 

吴甘沙:当Spark集群扩展到数千节点后,会遇到哪些主要的技术问题?

Ion Stoica:关于规模限制我想到了两点。首先,对于非常小的任务,调度器会成为瓶颈。其次,对大规模数据进行整个集群的shuffle操作,可能占据某些作业的绝大部分时间。我们正在努力消除,哪怕至少缓解这些扩展性的瓶颈。例如,我们最近开发了Sparrow——一个完全去中心化的调度器,它可以扩展到数万台物理机组成的集群。

(文/ 包研  技术审校/吴甘沙 责编/仲浩)

吴甘沙

本期特约 吴甘沙,英特尔中国研究院 首席工程师 

其主要研究方向包括大数据的计算范式和架构,软硬件协同设计,数据安全和权利,以及数据作为服务的应用模式和支撑环境。曾经参与和主持移动受控运行时(Managed Runtime)和并行编程等研究项目。发表学术论文10余篇,获得美国专利23项和国际专利数项,另有17项专利待审中。

欢迎关注 @CSDN云计算微博,了解更多云信息。

第七届中国大数据技术大会(Big Data Technology Conference 2013,BDTC 2013)将于2013年12月5日-6日在北京世纪金源大酒店召开。Spark核心设计者、Databricks创始人兼CEO Ion Stoica,Apache HBase项目管理委员会主席Michael Stack、百度大数据首席架构师林仕鼎、华为公司诺亚方舟实验室主任杨强、Apache Tez commiter Bikas Saha大数据技术专家领衔,来自腾讯、阿里巴巴、Hortonworks、LinkedIn、小米、Intel等50余位工程师带来近60场干货分享,更有《中国智能交通与大数据技术峰会》专场感受智能交通如何改变生活。

2013 Facebook黑客杯报名即将开始 解决Win8下IE10无法打开的故障 [简讯] Scala 2.10.0发布! 收购传闻:Apple一厢情愿还是Waze待价而沽 回顾过去,展望2013:移动开发引擎、工具和语言盘点 成本为0!Netflix开源工具Janitor Monkey清理AWS iOS开发者讲述在Google工作的三个月 GitHub历史上最糟糕宕机事故回放及反省 疑因竞争 谷歌有意让地图与WP手机不兼容 移动游戏开者必看:海外VC最关心什么? 淘宝UED:随侃设计师的个人素养 TIOBE 2013年1月:不负重望 Objective-C再次赢得桂冠! 大数据:商业或技术的挑战? 开源移动统计:Cobub Razor近期版本大升级 无人机应用,为何屡遭苹果拒绝 2013年Java继续火的五大理由 Rails所有版本都有SQL注入漏洞?其实没那么严重 如何设置Windows Server 2012 NTFS权限 智能手机大局已定 HTC难扭转乾坤? 比谷歌手表更酷!基于大数据分析的睡衣 众投资金:改变了移动游戏开发的一切一切 这些科技产品和革新或在今年“横空出世”?! 现代Objective-C七宗罪 Google工程总监Ray Kurzweil意欲打造“虚拟朋友” 惠普开源JavaScript框架Enyo更新:支持桌面和移动平台 分析:三星或将成为科技行业第五巨头 是真的 诺基亚真有可能推Android手机 如何打造IE10的指尖触碰式用户体验 SUSE全球OEM联盟总监:为何SAP HANA只选择SUSE? 推荐2013年最佳PHP开发框架 Patrick Wyatt:代码没问题 程序却有bug? 女同胞请近,男同胞看了不准砸我 请问如何把SQL Server2000中的数据库导入(附加进)SQL Server7? :)看看。。很可爱的小MM 在Dreamweaver MX中,怎样改变一定要按全角空格才能空格右移呢? 昨天要求2个数组并集的进来cc。 服务器这些端口都是什么? 请问如何把SQL Server2000中的数据库导入(附加进)SQL Server7? 请问如何把SQL Server2000中的数据库导入(附加进)SQL Server7? 这个实在不知。(消息) 为什么微软会将c++做变形手术,而违反c++之父j.s.的原意? sql server 2000中 datetime问题 调查: 在座的程序员参加的是哪种医疗保险?(参与有分) 水晶报表 那里可以下载倒Oracle9i?? 向各位汇编高手致敬,仰慕之情如滔滔江水 初学者函数调用问题 救救我吧!!!!!看这个查询如何做!在线等待!!!!!! 发现一个奇怪的问题求大虾帮一下. 大家对人文科学(哲学,心理学,伦理学等)怎么看待? 刚装好c++builder6就有问题:[linker fatal error] fatal:expected a file name高分请教 大侠帮看看这个问题! 交友!来者有分! 100分求救,关系ADSL连机问题,解决再开贴送分!高手进 升星无罪,散分有理 请问vb怎样关闭一个正在运行的程序,例如qq.exe,谢谢 商业软件一般用什么表格控件,报表?给分 18岁女孩的第一次(转帖) 当鼠标在Treectrl的Item上面停留时,会向主窗口发送什么通知消息? 请问我可以把autocad的文件作为一个字段保存到sql2000里面吗?我该怎么办了? 在一个Console程序中需要用到清屏(cls),但是聪console类中没有发现类似的功能,谁知道如何做?高分。 为什么一用request.htm进行搜索,就会要求下载保存search.asp文件? 怎样遍历一目录树并将其子目录及文件拷贝到另一地方 为什么当textArea的高度增大后它所在的单元格会变宽? 网上调查投票程序 ***散分求助--如何是jTable的某一列数据隐藏invisible,但是在数据还可以取出来? 安装quickstart问题,急……在线等待!!! 大送分 怎样写个SQL语句,把不及格的学生放在表noPass里? 黑客2观后感 明天要参加兄弟的追悼会。 在delphi中引用图片(jpg格式)如何限制图片的大小? 找不到Microsoft Office Server Extensions破解版的下载地址 关于VB二级考试的问题(请各位大虾多多帮忙撒:) DBComboBox非常奇怪的问题? 并发可以分为哪两种类型,或哪两种原因造成的? 真想把发垃圾邮件的邮箱和网站给黑了 如何得到一个目录的大小(关键要包含所有的子目录),有什么简单办法吗? 多表间的数据更新(在线给分) 再向大家提个问题,还是求救啊,大家都来帮帮我吧 求救:怎样控制Kodak控件中ImgThumbnail组件的问题 为什么我安装的 XPMenu 控件不听使唤的? "一日一钱千日千钱绳锯木断水滴石穿"出自哪个成语故事 一日一钱千日一千绳锯木断水滴石穿理解什么意思 一日一钱,千日一千;绳锯木断,水滴石穿.谁写的 迂回.洒脱.回味.的近一词是什么?拘束.羞涩的反义词是什么? 回味(反义词)还有近义词 明星学动物声音说来听听? 卡通动物的名字或动画明星动物的名字越多越好 一个成才的人是不能远离社会这个群体的,( ).(给其后加上一个与之相对应的比喻句,使句子生动) 一个成功的人是不能远离社会这个群体的.(补写一个与这句话相对应的比喻句) 田园将芜胡不归的意思? 怒 朗 贼防~防的词 数据称美国每年千万人迁徙 中西部人口背地里限制媒体报道 日本“悄悄”举行日本政府拟加大对福岛核事故干预力度 印度将发射火星探测器 “廉价雄心”遭印尼谴责澳大利亚监听 威胁停止两国打日本右翼政客“岛国意识”支配下的不安联合国副秘书长称叙利亚难民数已达93美国寿星跳伞庆百岁生日 从3900米日防相称美国监视日本系伤害盟友信任行媒体称美国将中国日本列为“重点监听国美建议叙问题会议11月举行 仍在做反每日彩讯续约谈判陷僵局 梅西受影响英超神奇教头拉涅利下课 球员带头“叛专家推荐今晚电视顶呱刮“卧虎藏龙”系列票上市 20元英超神奇教头拉涅利下课 球员带头“叛女“老赖”住豪宅开名车满屋名牌 欠钱“他人不文明行为” 大家很介意苏州也有个15岁古诗小才女 曾每天写曼联遭遇魔鬼赛程 21天内打6场比赛
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘