按照惯例今天应该是继续讲三驾马车的BigTable,但是一则BigTable这东西不容易一下子说清楚。二则我觉得是时候停一下技术,多聊点八卦。所以我们来讲讲这个著名的活雷锋公司,以及Hadoop的早年。
Yahoo作为互联网时代的第一股,曾经牢牢的占据了整个IT行业非常重要的位置。从.com时代存活下来,一直到最近穿出来卖给Verizon,又传闻Verizon变卦不想买。从天之骄子变成弃之如敝履的破鞋,也算得上是一个非常可悲的事情。我无意详细展开Yahoo这个公司的整个历史。但是业界有一个传闻,就是站在风口,猪也能飞起来。至于飞起来的是真的牛还是猪,只有等风停下来才能看明白。这话一次又一次在我的生活里被验证。所以通常来说聚光灯下的那些人头,到底里面有多少是真英雄,有多少是猪,只有拉长时间线才能看明白。
通常来说,大家默认的Hadoop起源是在Nuget这个项目。作为开源搜索引擎Lucene的姐妹的爬虫Nuget,始于Doug Cutting和Mike Cafarella。这两位在2003年开始做这个项目的时候,用的是手搭的几台机器。这个爬虫的东西很难scale,做inverted index更是麻烦。而Google的GFS和MapReduce于2003和2004年分别发表。于是到了2004年的时候这两位意识到需要重写这个Nuget系统了。他们用了几个月的时间做了一个简易版的HDFS和MapReduce,又把Nuget系统移上了这个新的平台。从此以后在几十台机器的范围内,可以非常稳定轻松的跑起来了。这大概就是互联网上能够听闻的Hadoop的最初起源。至于真相如何,我也不得而知了。但是有一点我是知道的,这code和Google的那个比,一定是不堪入目的。即使4年后的2008年,我在IBM Almaden Research Center实习的时候,不得不接触到当时的Hadoop系统,尽管我本人是学渣编程尤其的烂,依旧可以看得出来这个系统还是有不堪入目的感觉。那已经是四年以后了。
2006年注定是重要的一年,这一年Google发表了两篇重要的论文:BigTable和Chubby。前者导致了HBase,后者产生了Zookeeper。有关这些的东西留到以后再详细讲。这一年,也是Hadoop作为一个独立的系统从Nuget里面独立出来。这一年,还是Yahoo正式的招了Doug,从此开始了Hadoop的活雷锋时代。这一年,顺便插一句,也是我正式投出了人生的第一篇paper投出以后拿到拒信的时候,开启了我PhD的论文灌水生涯。
于是Hadoop就这样独立出来了,Doug在Yahoo搞Hadoop啊搞Hadoop,机器从几十台到几百台啊。大约是一年多以后的时候IBM也进来了,当然18摸(IBM)有着一贯的官僚和自毁长城的历史。这场Hadoop的盛宴,它们进来的早,却在内斗中赶了个晚集,基本上是一无所获了。Facebook那个时候也进来了。更有意思的事情是活雷锋不仅仅有Yahoo还有Google。当时的Google远不是后来的Evil的不得了,脑子很好使的那个Google,活脱脱的一个傻白甜。Google自己估计也是被MapReduce的风给吹得我得意的笑啊我得意的笑啊。一边是和数据库领域大佬,未来图灵奖的获得者Michael StoneBraker撕逼。一边Google和18摸一起买下了一个快要废弃的datacenter,弄进两千台机器,装上Hadoop,以便各地的PhD和Professor们可以好好的研究这个Hadoop,认认真真的膜拜MapReduce这个神话。
我想Google是一定看不上眼这个粗制滥造的Hadoop的,出来的版本里面没有资源管理器,当然这是Google刻意从论文里隐藏的结果。用Java这种毫无效率的语言写的。文件系统效率极低,而且metadata居然连基本的High Availability都没有。我知道各位看官可能觉得我在胡思乱想,以小人之心度谷歌之腹。其实不是的。我有非常铁的证据。
后世的Hadoop三大批发商分别是Cloudera,Hortonworks以及MapR。有关这三大批发商的故事以后我们慢慢八卦,但是前两者好歹是出身血统正宗。那个MapR的出身就非常的诡异了。CTO是个三哥,以前在Google里面搞GFS的。出来单干以后在印度乌压压的招了一群大小三哥们,用C++写了一个自己的版本的HDFS,自带High Availability。从此以后这个批发商走向了一条和其他人完全不一样的道理。用C++复制开源的项目,自己提供兼容的接口,卖不开源的自家的实现。而很容易查到的是Google Venture早年给这家投了不少钱。像这种不跟随开源走卖自己的东西的,虽然一开始的时候看起来很牛13,但是过些日子,乱拳打死老师傅,开源的要有的都会有的,比如High Availability,比如Resource Manager。一个小小的屁公司,怎么能够顶得住一个世界呢?而Google Venture早年却看好这个公司,只能说Google内部秉承了同样的理念。先支持Hadoop这个渣渣给大家见识一下MapReduce的威武,再展现一下Google高超的Engineering水准,于是全世界都要顶礼膜拜,Google从此封神了。
当然历史最终不是这样走的,这也就是为什么我觉得在某几年的时候从Jeff Dean到Google都被MapReduce的光辉给照瞎眼了。所以吹牛这个东西一旦吹起来就会飘飘然,觉得老子天下第一。周围的人再捧几下,就真的上天了。要不以袁世凯如此聪明的人,怎么也会想着去当皇帝呢?Google也不能免俗。其实类似的事情在Google身上不断发生,从Google Wave到Google Glass乃至Google Plus。好歹Google这几年终于清醒过来了,在tensorflow上的表现让我看起来完全不像以前那个250啊。当然拿着印钞机的250还是可以活很多年的,不论是微软还是Google,所以印钞机在手别无所求啊。
2009年同样发生了很多事情,Doug加入了新成立的承包商Cloudera,Mike PhD毕业去了UMichgen做了教授。2009年也是美国经济危机的第一年。那年我从我的学校滚蛋了,因为老板跑路,只好趁经济危机毕业了。我没见过Doug,见过Mike几次,因为在同一个圈子里混的缘故。我其实对09年毕业的Mike印象不深,印象更深刻的是他的同门师兄弟Chris Re。那年经济危机我被迫毕业,到处投各种职位,包括申请faculty的职位,结果Mike没有太多出面申请很多学校,Chris则几乎把每个学校都投了一个遍。凡是我投的他也投的,面试都属于他的。我只在200多名的一个小学校拿了个onsite最后还挂掉了。充分证明了谁是真正的大牛,谁是在风口也没飞起来的那头猪。
两年后Yahoo spinoff了它的Hadoop团队,VP of Hadoop等一干人成立了Hortonworks。这就是为什么今天的开源Hadoop里要么是这个批发商的,要么是那个批发商的,却没有MapR什么事情。当然,MapR也弄出了一个开源项目Drill,这是应对后来Google的BigQuery的策略了,和Cloudera的Impala有异曲同工之妙。我们还是留待以后再慢慢的讲吧。Yahoo的spinoff也就意味着它作为活雷锋时代的结束。让我们为这个即将死去的活雷锋这多年来对Hadoop无私奉献支持来说声感谢。由衷的感谢Yahoo这头风飞了很多年的猪对开源Hadoop ecosystem的巨大而无私的贡献。