一个电话 改变大数据命运的故事
凌晨 3 点时, Arun C. Murthy 被一个电话弄醒了,公司要求他紧急处理一个软件 bug。当时他是雅虎一个的广告定位 App 的工程师,App 运行很缓慢,因为 App 启用开源数字平台 Hadoop 时的一串软件代码写得很糟糕。谁也不会想到,这个小 bug,数年后却促成了官方 Hadoop 2.0 的诞生,改变了 Hadoop 的命运。
虽然是别人写的,但 Murthy 的工作就是修复它。谁也不会想到,这个小 bug,数年后却为 Hadoop 生成了一个全新的路径;一个几乎和大数据概念几乎等同的软件系统。
今天,Hadoop 应用在 非死book、推ter、eBay、Yahoo 等很多公司中,但 2007 年时,打那个电话之前,它不是这么有能耐的。
Doug Cutting 加入雅虎
受 Google 2004 年白皮书的影响,打电话的一年之前,Doug Cutting 和 Michael Cafarella 创建了 Hadoop 平台, 后来 Doug Cutting 加入雅虎,Murthy 则被叫去继续研究雅虎的 Hadoop 问题, 因为他对该系统软件比较有经验。
当时他看了看邀请表示“谁 TMD 要去用 Java 写系统软件呢?”但后来还是接受了,但是当天晚上,他又继续诅咒“我 TMD 没事干嘛去调试别人的 Hadoop 代码呢?”但之后他发现自己陷入了更深的诅咒,因为他发现处理过后的应用程序(广告定位 App)并没有真正意义上地运行 Hadoop。
Hadoop 实际上是由两部分组成的软件平台,一个叫做 Hadoop 分布式文件系统的存储系统(HDFS),一个叫 MapReduce 的处理系统。你可以转储大量的数据在这个系统里面,然后被分布在数十、数百、数千台服务器中,再用 MapReduce 在集群里把大问题拆分成小问题。这就是 Hadoop 的魅力:可以用大量廉价的商品服务器来省钱,而非购买少数昂贵的超级计算机。
不过有个小问题是,有时候开发者希望把数据从其中一个集群抽离出来,不用运行整个 MapReduce,这也是当时雅虎广告定位 App 的问题,当时这个给 Murthy 的第一感觉是 Hadoop 需要另一个系统。
Murthy 的第一感觉是 Hadoop 需要另一个系统
当时用临时手段解决了那个 bug 后,他开始筹谋这怎么彻底解决那个大 bug。 从 2008 到 2010 年,Hadoop 团队一直在关注如何提高 Hadoop 的安全性和稳定性,使其更具企业特征。许多相关的系统,比如被内置在主要分布集群中的 Pig 和 Hive 就是希望打造不用运行 MapReduce 而查询 Hadoop 的软件,但其实还是没抽离出 MapReduce,其查询只是被译成从 MapReduce 的方式罢了。
2010 年中的时候,Hadoop 团队认为 Hadoop 是时候改革了,Murthy 和所有 Hadoop 社区的开发者集结起来准备解决这个老问题,最后成果就是后来加入 Hadoop 2.0 的 YARN 附件。
YARN 诞生
YARN 是一个坐落在 HDFS 上的系统,支持开发者创建和 HDFS 互动的应用,无需启动整个 MapReduce,Murthy 表示:“2.0 其实不是一个任意数,是 Hadoop 第二体系”。
YARN 确定使用后,许多新的软件也开始被创建出来进一步补充 Hadoop。比如 推ter 使用 Spark 用来实时处理数据;雅虎使用 Spark 用来处理存储的数据。Cloudera 创建了 Impala 提高了查询 Hadoop 的速度。
但 Murthy 表示,只要开发者愿意,他们就可以使用 YARN 来查询 Hadoop,使得整个大数据的系统变得更为有效。
IT 检测公司 Nodeable 就在自己的 Storm 和 Hadoop 之间建立了一个整合系统,称为 StreamReduce,其副总裁(Appcelerato 副总裁,Nodeable 被 Appcelerator 收购了)表示 YARN 就是将来他们要进行批处理或者实时处理时需要的东西。
Hadoop 2.0
Spark 主要在 HDFS 上运行,虽然它丢弃了 MapReduce,远离了官方的 Hadoop,但 YARN 足够让它们相互联系,如果只想要一个简单的部署,可以不用 YARN,但是有的用户喜欢它,愿意安装它。
目前 YARN 已经存在在不少 Hadoop 分布中,包括 Cloudera 分布等。官方 Hadoop 2.0 开源项目 beta 版本马上要推出了,完全渗入市场可能还需要一段时间,但是它普及的时候将会带来很大的变化,无论如何,我们要感谢那个凌晨 3 点的电话。
Via wired