其实在Hadoop之前,百度也曾想过开发自己的GFS+MapReduce+BigTable,没错,百度想要开发的系统就是基于Google那三篇著名的论文的。这个系统叫做Pyramid,其领衔人是王选的高徒阳振坤博士。Pyramid大约开发了2-3年,最终以失败告终,据说最后与Hadoop PK的时候完败下来,阳振坤也在其后离职加盟淘宝。我不知道Google开发GFS+MapReduce+BigTable用了多久,但是GFS的论文是03年,MapReduce论文是04年,BigTable应该是07年,想来Google应该也是开发了4-6年左右的时间。Pyramid的失败直接导致了Hadoop在百度的崛起,不到两年,Hadoop的机器数量从无到有,很快就突破了万台的规模,并且机房也从北京开始像长三角扩展,百度也终于迈出了跨数据中心的步子,尽管这个步伐似乎比Google慢了5-8年?
不过百度虽然自己用Hadoop用得很High,负载什么的,报表都弄得不错,集群规模也上了国内少有的3000+台,但是却很少对Hadoop社区进行开源回馈。其内部Hadoop是基于Hadoop 0.19-0.20改进的。这样做的好处就是快,一方面依赖社区拿到已有的代码基,整合测试就可上线,同时也不用管什么伦理道德奉献回馈的鸟事,但其缺点就是内部的Hadoop和官方的Hadoop会逐渐越走越远,上游的Patch和改进越到后来会越难引进合并。这样做的结果就是和社区分离,用自己一人之力对抗全球智慧,最终只能自讨苦吃。
我记得有一次内部年会上,有位工程师跳起来问,“公司可不可以做一些开源的产品呢?很多东西本来就是从外边拿过来的。我只记得当时台上的两位高管,其中一位女高管脸色稍变,过了一会又开始讲什么“做开源需要时间精力;好的东西才好意思开源出去,否则会丢脸什么什么的。我想,*一个IT公司有没有勇气拥抱开源,是一个公司是否对自己的技术有足够自信的一个表现*。在这方面,百度乏陈可善,不但没有代码,连论文也很少。而淘宝在章文嵩的带领下,其开源已经做的如火如荼,算是国内IT企业中开源做的最好的一个。
3.3 世界上最优秀的工程师?
百度的内部邮件中不止一次的提到“世界上最优秀的工程师这个字眼,可惜作为这封邮件的收件人,连我们自己都不相信自己是世界上最优秀的工程师。09-11年高速扩张的两年,百度的招人标准降低了很多。这也是无可奈何的事情,毕竟中国的人才储备有限,有时候即便你想花钱,也不一定能招到足够的人。
你当然无法否认,百度内部有很多牛人,可是大凡拿得上台面的公司,那个手里没有一些牛人呢?重要的是保证整体人才的平均质量,而不是树立几个典型,然后就自吹自擂说自己的工程师是世界上最优秀的。