你不是谷歌,不要学习它的一切
软件工程师对于最荒渺的事情非常热衷。我们倾向于认为自己是超理性的,但是当我们面临一种技术选择的时候,我们最终会陷入一种疯狂状态——从一个人的Hacker News评论跳到另一个人的博客文章,直到变得麻木,我们无助地漂浮朝着最明亮的光线倾斜,并且俯卧在它的前面,而忽略了我们最初寻找的东西。 这不是理性的人做出决定的方式,而是软件工程师决定使用MapReduce的方式。 正如Joe Hellerstein在他的本科数据库课程[1]上所说的(在54分钟): 问题是世界上有5家公司从事如此大的工作。对于其他所有人……你正在为实际上不需要的容错能力执行所有这些I/O。人们在2000年代有点Google的狂热:“我们将像Google一样做所有事情,因为我们也运行着世界上最大的互联网数据服务” [横摆倾斜,等待笑声] 你们的数据中心大楼有几层?Google在俄克拉荷马州梅斯县的数据中心是4层。 拥有比所需更多的容错能力可能听起来不错,但考虑到成本:不仅会做更多的I/O,而且可能会从一个成熟的系统(如事务,索引和查询优化器)过渡到某种相对不成熟的系统上。真是倒退了一大步[2]。有多少Hadoop用户自觉地进行了这些折衷?有多少用户明智地进行了这些折衷? 目前,MapReduce/Hadoop仅仅是一个简单的目标(soft target),即使开发人员已经意识到目标不是很合适。但是