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

对话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场干货分享,更有《中国智能交通与大数据技术峰会》专场感受智能交通如何改变生活。

电话拨号 -VB资料 电子邮件的标准格式 (RFC 822)-VB资料 断开拨号网络的连接-VB资料 断开与 Internet 的连接 -VB资料 发送电子邮件附件-VB资料 VB获得用户网络登录名 基 于Win95 的VB5 串 口 通 信 程 序 基于Win95的VB5串口通信程序 检测运程数据传送的断线-VB资料 简单电子邮件发送程序-VB资料 VB建立拨号联接 -VB资料 将所有窗口最小化-VB资料 VB利用IE控件访问Internet VB利用IE控件设计简易浏览器 VB利用Mscomm32控件判断MODEM是否打开,或者正在工作,并且判断拨号时是否遇忙音 VB利用TAPI进行电话拨号 利用VB访问Internet 利用VB设计聊天室 利用Visual Basic实现无线通讯 VB利用Winsock控件实现局域网通信 VB如何从 Internet 上取回某一个网页的內容? VB如何检测是否已连接到Internet? VB如何利用Winsock控件编写自己的Internet程序 VB如何每天抓取 Internet 上某一个网页中的图片来更换桌面的壁纸 VB如何启动拨号网路中的连线? VB如何使用MSCOMM32.OCX发送大于80H的字符,可否给个示例程序? VB如何用VB打开默认浏览器或默认发信程序? VB如何用Visual Basic编写小型的网络系统 VB如何在程序中启动 NT 的【拨号连接】对话框? VB如何在网页上使用 VB5 制作的 ActiveX 控件? VB如何中断【拨号网络连接】? 急件:怎样动态加载或引用DLL文件 我的SERVLET为何不能响应? 在两个表连接查询时为什么总报错:“Table is read only”? *************小问题,在线等待************** 关于更改程序名字的问题! 关于计算机远程终端控制问题 关于onload ASP的参考手册是什么? 更新数据库的日期时间问题!!! 为什么用insert 语句插入数据,数据长度只有4k左右? exchange 出现的怪问题 入门 菜问题 连接服务器的问题 我这是怎么了? 非常着急,关于bean的问题 在单元格中插入html? 关于两个大表连接和索引的问题 灌水、抢分 echo命令的具体使用方法? 在BIOS密码之后,系统引导之前加密计算机的软件有哪些?请帮忙呀 请问 如何获得mysql的原码 关于onload VB中如何使用资源文件?急!急!急! 关于思路,高分求教!分数不够在添 不得不提问了: 怎样防止用户重复登陆!???? **请问Kylix3在红帽7上如何安装? TEST 求php的win98下开发环境,大家帮帮忙。 我想做一个类似于邮件系统中附件功能的程序,请问用的是什么协议,那里有源码? 为什么输出结果不正确呢??? 急救!用ADO在98下与2K下不能同时运行! 主板的认识! 如何删除相同的两条记录 有关Blob造型成oracle.sql.BLOB的问题。 急死我了!!!RS485通讯的奇怪问题,请高手帮忙! 怎样在delete记录时不往log文件中写东西? 签名支持JK10000行动,同意签名者,进来跟贴!到时候咱们的真名或ID会被复印在传单背面,抵制日货,保卫钓鱼岛!!!!!!!!!!!! 迷惑!!!!!高手指点,值得讨论,谢谢! char型怎么转换成String型?(答对结帖) 请问 哪位大侠有loadrunner的中文测试资料提供一下,非常感谢! JS和ASP的问题????? 高手指点 这样划分vlan可不可以???? 数据库超时 VB+SQl 2000 如何实现在程序运行时加减代码? 各位高手给我个提示有关手动添加消息映射的 关于EjbOBJECT和EJBLOCALOBJECT在使用上的区别?? 寻找中俄文转换的工具软件!急! 请问怎么把CLASS程序打包成JAR程序? 如何在VC中嵌入对Access表tableApp中纪录个数的统计(在线等)? 学习java到底有没有前途?? 温岭坞根岭隧道今起封闭施工衢州两历史文化街区房屋收购开始签约湖州干部选拔任用采取空岗预告和网上推湖州撤地建市30周年 已经向工业强市温州市民卡服务项目公示一年未开通 随钱塘江上开轮渡初步设定4条航线杭州地铁2号线东南段全线洞通 计划明7月1日开始杭州火车南站将停办客运业杭州地铁1号线火车东站站月底迎客杭州治堵车辆道路违停 或将直接被拖离昨天杭州最高气温36.4℃为62年来嘉绍大桥月底通车 绍兴到上海缩短至1金华市区拟取消900个路面停车位金华拟提拔6位结构性市管干部 最年轻杭州火车东站开通在即 火车南站将暂别杭州地铁18天三次因故障停车 民众质厦深高铁或年底前开通 温州到深圳6个浙江再掀撤县设区热:洞头撤县设区方案杭州不少小区游泳池成本太高成鸡肋杭州主城区年底前取消1000只屋顶水杭城1356个红绿灯近半能自动调时间在镇街办事可享证照文书包邮时报体育频道新一代运载火箭长征五号昨晚首飞成功 探访增城小楼镇报德祠 广州唯一一座三丁俊晖解释失控原因:精神绷紧导致情绪国足首练,“严防”媒体4战151分,场均三双 愤怒的威斯布龙口西又多了一个河边花园一孩二孩半岁前要办理生育登记橘子皮泡脚可除菌润肤首个国家森林城市群建设规划即将出炉弘扬伟大长征精神 走好新的长征路 推丈夫有婚外情,离婚可要求精神损害赔偿出招防作弊 印度公务员考试 禁止文交通部门:小心的士“叠表”猫腻中学生学习压力大?高空抛杂物两个钟南昌检方证实副科长拥149套房 购买夜宵噪音令孕妇难眠警方联合城管解民忧作业太多 西班牙家长力挺孩子“罢写”提前投票 希拉里有优势特朗普号召“悔黄埔将建中大肿瘤中心新院区
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘