Hadoop是什么?及其创始故事
燕麦云   2012-05-30

Hadoop是什么?

Hadoop

Hadoop是基于Google搜索引擎的分布式计算技术,Google的哲学是蚂蚁雄兵精神,利用大量平价的服务器,搭配平行运算架构,以最符合经济效益的方式创造庞大的运算量。当Hadoop以此技术发展出巨量资料平台,对企业而言无疑是一道克服巨量数据挑战的曙光,因为企业可以不再依赖价格高昂的大型专属设备,而可以透过自建大量服务器群集来解决。

Hadoop的创始故事

2002年时,Hadoop项目的共同创始人Doug Cutting 原本要打造一个开源的搜索引擎Nutch,遇到了储存大量网站数据的难题,刚好Google在2003到2006年间,对外公开了内部搜索引擎的3大关键技术,分别是Google的GFS文件系统,大规模丛集上的运算技术MapReduce,以及分布式文件系统Bigtable,这些正是Google打造出全球性网络服务的核心技术,可以用分布式架构来储存和处理超大规模的数据。

Doug Cutting 参考了Google这3项技术的原理,利用Java语言,发展出自家的DFS文件系统和MapReduce程序,来解决Nutch搜索引擎的大量数据扩充需求。Yahoo则是为了开发自家的搜索引擎,看上Nutch项目的搜索引擎,在2006年1月聘雇了Doug Cutting 。
Hadoop
不过,Yahoo当时不需要DFS文件系统和MapReduce程序,因此,Doug Cutting也在2006年1月将这些程序代码从Nutch项目中独立出来,另外成立了开源项目来维护,并且以儿子的玩具大象名称Hadoop,来命名这项后来闻名世界的项目,这正是Hadoop以黄色大象为Logo的由来。

后来,Yahoo看到了Hadoop可以运用在大量数据运算的价值,也开始支持Hadoop项目,并投入不少人力参与开发,也开始在内部运用Hadoop,Yahoo甚至在2008年建置了一个当时全球最大规模的Hadoop丛集,利用4千多台服务器,使用超过3万个处理器核心,来索引超过16PB的网页数据。

Google也参与了Hadoop项目的开发,并利用此项目作为教材,在世界各地培训云端运算的开发人才,Hadoop逐渐被视为是云端运算的关键技术。因为重要性日增,Hadoop也在2008年成为Apache的顶级项目,位阶等同于全球最多服务器采用的 Apache HTTP Server。

新兴社交网站如Facebook、Twitter,因为用户数据量暴增,而且数据类型大多是非结构化数据,如照片、影片、网站浏览记录等,也开始采用Hadoop来处理数据。例如Facebook就曾利用Hadoop打造了一个数据仓储平台,来整理和缩减庞大的用户数据,数据量减量后再放入甲骨文数据库中进行分析。

几年前,不少跨国企业,也因为巨量资料的问题,而找上Hadoop项目,Visa、eBay都是这时期率先采用的企业。另有软件业者如趋势科技也利用Hadoop来储存和分析防病毒软件回传的大量病毒记录文件。

到了近两年,社交网站和行动装置风行,用户疯狂透过手机、平板计算机、计算机等,在社交网站上大量分享各种信息,许多热门网站拥有的数据量都上看PB等级,而大企业拥有的数据量也逐渐从TB等级,进入了PB等级。Big Data时代,宣告来临了。

首当其冲的就是传统的关系数据库系统,原本企业数据库需要的容量大多是MB、GB等级,但是到了Big Data时代,企业对数据容量的需求则暴增到了数10TB,甚至会出现相当于1,000TB的PB级数据。

一般来说,传统数据库系统对TB级数据量的处理相当得心应手,开发人员也很容易运用SQL指令来进行各项分析,各种商业智慧工具也相当成熟。但是对于超过 TB等级的数据量就显得效能不足,或是企业得投资重金采购效能更好也更昂贵的专属IT硬设备,才能提供足够的处理效能。