![]()
![]()
“Jeff Dean的论文,与阿里王坚、周靖人、徐常亮、孙牧、林伟、关涛不为人知的故事。”
作者丨覃倩雯
编辑丨刘伟
前言:
雷峰网曾在此前的文章中讲述了Jeff Dean如何影响腾讯早期技术决策。近期我们又与阿里多位原高层及核心技术人员交流,挖掘了Jeff Dean对阿里技术路线的影响。本文是阿里系列第一篇,讲述MapReduce如何沿两条路径进入阿里、影响ODPS;下一篇将继续讲述TensorFlow对阿里AI技术体系的影响。
据微软早期成员回忆,20多年前,周靖人第一次读到Jeff Dean发表的MapReduce论文时,被里面的技术思路深深折服了。
这个思路后来直接影响了周靖人在微软时的成名作:Scope。
戏剧性的是,Scope在20年后也成为了阿里很多AI明星产品的名字,如Model Scope(魔搭社区)、AgentScope、DashScope……这里面,或许多少藏着周靖人的“私心和遗憾”——一个曾被拒绝的开源梦。
而当时和周靖人在微软一起做Scope这套系统的林伟、关涛等人,也跟着他来到了阿里。他们带着两个目标和野心,一是帮助阿里做一个更好的大数据平台,二是他们在微软看到了Jeff Dean团队在秘密研发Tensorflow,而当时阿里的场景有着比微软更大的AI叙事潜力(这部分的精彩故事将在下一篇文章呈现)。
有意思的是,周靖人后来从徐常亮手中接过来的阿里曾经的王牌技术产品ODPS,也与Jeff Dean的MapReduce也有着千丝万缕的关系。
于是,杭州遇上西雅图的戏码,正式上演。
01
被Jeff Dean启迪的周靖人,和他的一个遗憾
2007年前后,微软开始搭建自己的大数据平台Cosmos。当时微软研究院向必应团队推荐了自己的执行引擎Dryad。但Dryad很快暴露出问题:太难用。
因此,Cosmos急需在Dryad上再封装一层,给系统提供一个高级查询语言,把底层复杂的执行计划和计算图全部隐藏起来,让普通工程师可以用简单方式表达计算逻辑的抽象层。
Scope,在这个背景下出现了。
面对微软给的任务,周靖人作为直接负责人,立马想到了Jeff Dean的那篇文章。
微软的问题,和MapReduce论文里解决的那个问题:怎么让不懂分布式系统的人也能调用成百上千台机器,有异曲同工之处。
MapReduce给的思路很简单。把处理海量数据这件复杂的事,压缩成了一个简单的编程模型:先用Map把一项巨大的任务拆开,交给成百上千台机器并行处理;再用Reduce把结果汇总起来。
这样一来,任务应该跑在哪台机器、哪台机器突然挂了、数据怎么在集群里搬,统统交给系统。程序员只需要告诉系统一件事:自己到底想算什么。
但周靖人又在MapReduce基础上多走了一步:它还支持SQL。
在Scope里,开发者可以写SQL,也可以写类似MapReduce的脚本逻辑;系统会把这些代码编译、优化,把SQL转换成逻辑执行计划,再映射成Dryad的DAG图,最后在微软自己的Dryad去跑。
不会写复杂分布式程序的数据分析师,也可以直接写SQL。Scope会先把这些代码编译、优化,再翻译成一套执行计划,最后交给微软自己的Dryad去跑。
据参与者回忆,周靖人把SQL Server Optimizer一脉的优化思路带进Scope,重新写Rule,一点点改掉原来不好用的逻辑。之后他又全部把Optimizer改完,再重写Compiler、Code-gen。
在微软后来发表的Scope论文中,Compiler、Optimizer、Code Generation正是最核心的几部分,而标题就叫:“Parallel Databases Meet MapReduce”——并行数据库遇上MapReduce。
周靖人正是作者之一。
他从头到尾参与了Scope整个项目,亲手搭了一个核心团队,为它亲手写下了许多核心代码。
在他的带领下,Scope很快成为微软搜索体系里重要的大数据基础设施。但这套系统最后也给周靖人留下了一个很大的遗憾:微软不允许Scope开源。
而比Scope晚几年出现的另一款大数据通用计算引擎伯克利的Spark,却比干了一件微软没有做到的事:开源。
那时候,大学、创业公司、大厂工程师开始一起写代码、改Bug、开发插件,Spark很快从一个伯克利的研究项目,长成全球最有影响力的大数据框架之一。
据Scope早期的参与者回忆,当时Scope的工程能力和性能并不输Spark,甚至在相当长时间里明显领先。更早之前,知名大数据框架Flink创始人还带着一众开发者,两次到访华盛顿湖东侧的微软雷德蒙德总部88号大楼,向周靖人讨教。
但因为有了开源生态,Spark在行业内走出了更广阔的天地。而Scope,则一直留在了微软内部。
在一些人看来,Scope的这段经历,一直刻在周靖人的心里,成了一个遗憾。开源一事,也成了他的一个执念。
2015年,周靖人带着遗憾加入了阿里,当年跟他一起并肩作战做Scope的林伟、关涛,陆续也跟着来到了阿里。再后来,人们在阿里的开源技术生态中,陆续看到了GraphScope、ModelScope、DashScope……
从周靖人后来在阿里的技术实践来看,开源与开放始终是一条清晰的主线。
他把在微软积累多年的技术理念和研究带到了阿里,也把二十年前没能完成的事情,换了一个地方继续做了下去。
02
MapReduce催生Hadoop,
一路促成阿里王牌技术产品
在Scope沿用Jeff Dean技术思路的同一时间,Jeff Dean的论文也正影响着大洋彼岸的雅虎中国和阿里。
2004年前后,Google公开了GFS、MapReduce论文,但并没有把内部系统开源。外面的工程师能看到图纸,却拿不到真正的程序。
传奇开发者Doug Cutting决定自己写。
他按照GFS、MapReduce的架构思想,从头实现了一套开源存储和计算系统,后来逐渐演化为Hadoop MapReduce。
随着2006年Doug Cutting加入雅虎,Hadoop从一个开源项目,真正跑进了大型互联网公司的生产环境。
当时雅虎体系里,有一个中国工程师:孙牧。
孙牧很早就开始研究MapReduce和Hadoop,还曾写文章向国内工程师科普这套当时颇为新鲜的大数据技术。后来雅虎中国与阿里走到一起,孙牧进入阿里。
巧合的是,当时淘宝的数据已经快把原来的技术体系撑爆了。商品、交易、用户、搜索、广告,每天都在制造越来越多的数据。过去依赖Oracle等传统数据库解决的问题,已经越来越难靠老办法继续撑下去。
2008年前后,阿里开始大规模引入Hadoop。内部把这套系统称作:云梯1。因为对Hadoop非常精通,孙牧也因此成为云梯1的重要负责人。
但Hadoop从一开始,就只是阿里用来“救急”的过渡方案。
2009年,阿里云成立,作为当时阿里技术体系的核心负责人,王坚开始主导飞天的研发,希望从底层重做一套属于阿里自己的分布式计算系统。
阿里内部很快出现了一个颇为微妙的局面:云梯1,下面跑Hadoop;云梯2,下面跑飞天。
但只把飞天做出来还不够。
阿里最终想做的,不是把Hadoop用好,而是把这套外部系统换掉。问题也随之而来:把Hadoop换掉以后,海量数据拿什么算?
于是,ODPS成了王坚重点推动的另一项核心工程。飞天解决底层分布式计算和资源调度,ODPS则负责承接上层海量数据的计算与分析。
在王坚主导的这套技术体系里,ODPS后来成为和飞天紧密绑定的核心项目,而真正站在一线把这套系统做出来的直接负责人之一,是徐常亮。
2010年前后,徐常亮开始带队攻克这个问题。据早期参与者回忆,当时他手里只有两个应届生、两个实习生,后来团队才慢慢扩充到300多人。
最早时,这个项目还不叫ODPS。徐常亮给它起了一个很有阿里江湖气质的名字:干将莫邪。
早期参与人士透露,干将是MapReduce之上加入Join等更复杂的数据关联操作,让过去需要多轮MapReduce才能完成的事情,可以在更高一层直接表达。
莫邪解决的则是另一个问题:总不能让所有分析数据的人,都先学会写MapReduce。当时,Hadoop世界已经出现Hive,用户仍然写熟悉的SQL,Hive再把SQL翻译成下面的MapReduce作业。
徐常亮决定把这套思路拿过来,但有一件事要换:底层下面不再跑Hadoop。
据当时参与者回忆,徐常亮的办法很直接,把Hive生成的执行计划接过来,再做一层转换,最后交给飞天去执行。对上层用户来说,变化并不明显。他还是写SQL,但SQL下面真正执行的系统,已经开始一点点从Hadoop迁移到阿里自己的体系。
2011年前后,“干将莫邪”逐渐有了一个正式名字:ODPS,它开始支撑阿里金融、淘宝等核心业务。到2013年前后,阿里自研大数据平台已经能够支撑约5000台服务器。
此后几年,原本分散在Hadoop等平台上的集团数据开始大规模迁移。到2015年前后,ODPS逐渐成为阿里最核心的大数据底座之一。(更多阿里飞天系统的精彩故事,可点击雷峰网此前文章)
03
十年后,两波人在杭州坐到了一起
就在Hadoop逐渐退出阿里的2015年,一个熟悉的名字从西雅图来到杭州:周靖人。
加入阿里后,徐常亮逐渐把这套做了多年的系统交到周靖人手里,林伟、关涛也陆续从微软来到阿里。至此,十年前一起在雷德蒙德做Scope的那批人,又在杭州坐到了一起。
只不过这一次,他们面对的已经不是Scope,而是阿里花了多年时间从Hadoop体系里重新造出来的ODPS。
这件事放到十几年后再看,颇有些戏剧性。
周靖人在微软做Scope时,最重要的工作之一,是想办法把SQL变成可以在数千台机器上高效执行的任务;几乎同一时期,远在杭州的徐常亮,也沿着MapReduce、Hive往前走,最后做出了ODPS。
两拨人此前没有交集,却因为Jeff Dean的同一篇论文,各自在太平洋两岸走了十多年。一拨人在西雅图沿着MapReduce做出了Scope;另一拨人在杭州沿着MapReduce催生的Hadoop,走到了ODPS。
换言之,Jeff Dean二十年前写下的MapReduce,最后把两拨受它影响的人,都带到了同一张桌子上。
本文作者长期关注大厂AI、电商行业,欢迎添加微信qqw_501一起交流。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.