Hadoop于2006年1月28日诞生,至今已有10年,它改变了企业对数据的存储、处理和分析的过程,加速了大数据的发展,形成了自己的极其火爆的技术生态圈,并受到非常广泛的应用。在2016年Hadoop十岁生日之际,InfoQ策划了一个Hadoop热点系列文章,为大家梳理Hadoop这十年的变化,技术圈的生态状况,回顾以前,激励以后。Doug Cutting是Hadoop的发起人,这篇是从他的Hadoop十周年祝贺词翻译而来。
2016年是Hadoop诞生十周年。此纪念日既给予了我们机会去庆祝过去10年来 Apache Hadoop所取得的进步,也让我们反思是如何取得今天的一切成就,同时以便更好地规划未来的发展目标。
Hadoop是为了大数据而诞生的,其本身就象征着本世纪工业革命的焦点:业务的数字化转型。十年前,数字化业务仅仅在少数几个行业中得到了应用,例如电子商务和媒体。从那时起,我们已经看到数字化技术将成为几乎所有行业必不可少的一环。每一个行业都正在致力于围绕其信息系统构建数据驱动型运营模式。像Hadoop之类的大数据工具可以使各行业能够从他们所产生的数据中获得最大的利益。
Hadoop本身并非是数字化转型的根本起因,但是它是推动这种发展趋势的重要因素。因此,通过追溯Hadoop的发展历史,可以更好地了解我们现在所处的世纪。
在Hadoop出现之前,业界存在两大软件传统,Doug Cutting称之为“企业式(enterprise)”和“黑客式(hacker)”。在企业式传统中,供应商负责向运行软件的企业开发和销售软件,但是两者之间的合作是非常少的。企业软件依赖于一套关系数据库管理系统(RDBMS)来解决几乎所有的问题。用户仅信任他们自己的关系数据库管理系统(RDBMS)来存储和处理业务数据。如果某数据不是在该关系数据库管理系统(RDBMS)中,用户则认为不是业务数据。
在黑客式传统中,软件主要由那些在大学、研究中心和硅谷网络公司开发该软件的相关方使用。开发人员通过编写软件来解决特定的问题,例如路由网络流量、网页生成和网页服务等等。因此,Doug 选择了后一种传统,十多年来一直专门致力于搜索引擎是开发工作。Doug 说他们很少使用关系数据库管理系统(RDBMS),因为其没有得到很好地扩展以搜索整个网络,速度非常慢,不灵活且成本昂贵。
2000年,Doug加入了Apache Lucene项目,第一次尝试开源项目开发工作。该方法对他来说是一个启迪。不仅仅可以与开发人员紧密合作,而且变更工作单位后还可以继续为同一款软件投入心血。但最重要的是,这极大地增长了见识:优秀的开源项目是如何让软件变得大受欢迎的。如果软件不会因许可限制而束缚,那么使用者就能够以更为舒适的方式来使用该软件,并基于该软件开展自身的业务,而不会存在硬依赖于不透明的商业性软件的风险。当使用者发现问题时,他们就可以介入并协助解决这些问题,从而提升了开发团队的规模。总而言之,开源是软件应用和开发的一种促进剂。
几年后,大约在2004年左右,当开发Apache Nutch项目时,Doug他们有了另外一个见解。当时正试图构建一个可以处理数十亿网页的分布式系统。但是,不如人意的是该过程进展相当缓慢:很难开发和运行这个软件。他们听到传闻说,谷歌公司(Google)的工程师设计了一个系统,可以只需要几行代码编写一个计算程序,该计算程序可以在数千台机器上并行运行,并且可以在几分钟时间内就能够可靠地处理多TB的数据。之后,谷歌公司(Google)发表了两篇论文,描述了该计算程序是如何工作的,其中最关键的就是一个分布式文件系统(GFS)与一个执行引擎(MapReduce)。这种方式将使Nutch变成一个更可行的系统。此外,这些工具可能可以被用于很多其他应用程序中。MapReduce在大规模数据分析方面展现出了前所未有的潜力,但当时只提供给谷歌公司(Google)的工程师使用。
综合开源特性在推广科学技术方面的效能以及谷歌公司(Google)方法的广泛适用性,Doug意识到采用开源的方式实施谷歌公司(Google)的想法将不仅能更好地帮助他们应用Nutch,而且很有可能成为一个非常成功的开源项目。怀着这样的想法,Mike Cafarella和他开始在Nutch系统中实施这样的分布式文件系统和MapReduce引擎。
截至到2005年,谷歌公司(Google)引领的这种新型Nutch系统已经被Doug Cutting等人应用于20到40个计算机集群中。但是,如果仅仅依靠几个人利用业余时间来开发这款软件,那么可能需要耗费很多年的时间才能让该足够稳定且可靠。此外该软件需要在数以千计的计算机集群上进行测试和调试,但是他们没有足够的计算机集群来完成这一工作。
2006年,Doug Cutting在雅虎公司(Yahoo!)给一些伙计们谈论了有关Nutch的信息,并且得知他们对这种软件存在巨大的需求。同时,他们也有一支熟练的工程师队伍在进行这项工作,并且部署了大量的硬件。因此,他和雅虎双方之间的匹配相当完美。
于是,在2006年1月,他加入到了雅虎公司(Yahoo!)。此后不久将Nutch中的分布式文件系统和MapReduce软件分隔开来形成了一个新的项目,即“Hadoop”,这是以Doug儿子的毛绒大象玩具而命名的。由于新加入了十几名雅虎公司(Yahoo!)的工程师以及配置了数千台电脑,因此他们取得了飞速的进展。截止到2007年,他们构建了一个相对稳定的、可靠的系统,可以使用经济实惠的商用硬件处理数千兆字节(PB)的数据。
Hadoop彻底地改变了整个行业的格局。开发人员可以更快、更轻松地构建更好的广告方式、拼写检查、页面布局等等。此外,越来越多的非雅虎公司(Yahoo!)的用户也开始部署Hadoop,例如Facebook、Twitter和LinkedIn等公司。在Hadoop之上也很快建立了其他项目,例如Apache Pig、Apache Hive、Apache HBase等等。同时,学术研究人员也开始使用Hadoop。这样就已经达到了Doug Cutting最初设想的目标:即构建一个能够轻松方便、经济实惠地存储和分析大量数据的非常流行的开源项目。
随后一些风险投资商说该软件可能除了网络和学术界之外还有更大用途。但是Doug认为银行、保险公司和铁路公司可能永远也不会运行这种开源的“黑客式”软件。风险投资商依然坚持他们的观点,并在2008年筹建了Cloudera,这是业界第一家明确使命为将Hadoop和相关技术引入传统企业的公司。
一年以后,在2009年,Doug才开始意识到这种可能性。如果可以让世界500强企业开始采用Hadoop的话,那么很可能就会改变他们的业务模式。随着公司逐渐采取更多的技术,从网站和呼叫中心到现金出纳机和条码扫描器,他们的手指尖将会传递越来越多的关于他们企业的数据。如果企业机构能够采集和使用更多的数据,那么将可以更好地了解和改善他们的业务。传统的基于关系数据库管理系统(RDBMS)的技术存在以下弱点:在支持可变、凌乱的数据和快速实验方面显得太过死板;无法轻易扩展到支撑PB级数据;并且成本非常昂贵。与此相比,即使是很小的Hadoop集群也可以允许公司提出和回答比以前更复杂的问题,并且可以不断地学习和提高。此后Doug加入了Cloudera公司。
现在,七年后,我们可以看到,Cloudera公司的创始人是多么的明智:Hadoop及其开启的潮流已经在主流企业中发挥了非常有价值的作用。
我们在多个方面正处于大变革的时代。目前,传统的企业式关系数据库管理系统(RDBMS)软件面临着开源的大数据软件这个竞争对手。出乎意料但是非常让人惊喜的是,黑客式和企业式软件传统之间的差异已不再明显,并且两者之间已经出现了融合。同时,软件的开发者和使用者之间也没有了有严格的划分。
Hadoop生态系统中没有任何一个单一的软件组件占主导地位。Hadoop也许是最古老和最成功的组件,但是每年都会引入新的、改进的技术。新型的执行引擎(例如Apache Spark)和新型的存储系统(例如Apache Kudu(正在孵化中))表明,这种软件生态系统的发展非常迅速,且不存在任何中心控制点。用户也可以更快的获得更好的软件产品。
该软件不仅更实惠,可扩展,而且提供了更好的风格。企业机构不仅可以探索混乱的、多样化的数据源,开展实验,而且可以迅速地开发和改进应用程序。我们可以综合利用源于传感器、社交媒体和生产过程的数据来进行更深入的分析,制定明智的决策以及推出新的产品。包括Cloudera在内的公司都在不断地推动该软件的完善,确保其满足各行业的需求,使之更稳定、更可靠、更易管理、更安全,并且可以与现有系统轻松地集成在一起。
当前,政府和行业本身也正在转型。不仅是优步(Uber)和特斯拉(Tesla)之类的新兴公司正在使用数据来重新塑造自己的行业,卡特彼勒公司(Caterpillar)和雪佛龙公司(Chevron)等老字号品牌也正在通过数据技术极大地提升自身。我们将在本世纪获得的绝大部分的技术进步都将源于我们对所生成数据的深刻了解。
回首过去,10年前Doug决不会猜到Hadoop将会在这般的滔天巨变中发挥如此关键性的作用。对于今天所取得的一切成就,他感到十分自豪和惊喜。随着数据世纪的到来,期待看到Hadoop继续发挥它的影响。