Hadoop之父祝贺黄色小象十岁生日快乐

2016 年 1 月 29 日

编者按

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),因为其没有得到很好地扩展以搜索整个网络,速度非常慢,不灵活且成本昂贵。

Hadoop 的发展历史

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 继续发挥它的影响。

2016 年 1 月 29 日 06:001300

评论

发布
暂无评论
发现更多内容

异步excel导出组件设计和实现

Wayne Chu

Java 微服务 EasyExcel SpringCloud 服务治理

一周信创舆情观察(9.28~10.11)

统小信uos

谋生的工作动机,永远是个打工者

陆陆通通

Java 程序员

动态代理玩不明白?别紧张,你只是缺少这个demo

小Q

Java 编程 程序员 开发 动态代理

是的,你没看错,自己的APP也能运行微信小程序了

fino星君

小程序flutter, 跨平台 小程序生态 移动开发

干掉PPT!现场编码的职级晋升答辩你参加过么?

华为云开发者社区

软件 开发者 API

程序员上班打工的认识误区

陆陆通通

程序员 打工

让超宽带抵达产业互联网:UBBF上演智能联接全面落地

脑极体

区块链应用众多难题“卡脖子”

CECBC区块链专委会

区块链 金融 供应链融资

Pulsar 社区周报|09-19 ~ 09-25

Apache Pulsar

大数据 开源 Apache Pulsar 消息中间件

如何花“一点点小钱”突破华为云CCE服务的“防线”

华为云开发者社区

容器 k8s

程序员黄金年龄25-28岁,我们30+的人该去哪儿?附华为案例;

Java架构师迁哥

重大事故!IO问题引发线上20台机器同时崩溃

AI乔治

Java 架构 多线程 io 并发

如何获得工作成就感

滴滴普惠出行

一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程

AI乔治

Java 编程 架构 JVM GC

C++函数模板的偏特化

Jovany Wang

c++

区块链的浪潮开始涌动了

CECBC区块链专委会

区块链 期货

Java之父都需要的一本能够更深入地了解Java编程语言的书

Java架构之路

Java 程序员 面试 编程语言

ClickHouse最佳实战之分布表写入流程分析

京东智联云开发者

数据库

Java-技术专题-JDK8-HashMap的实现原理

李浩宇/Alex

十年Java开发经验,走了五年弯路,整理了一份Java架构师进阶路线及进阶资料!

Java架构之路

Java 程序员 面试 程序人生 编程语言

风雨边城

满天星

美食 旅行

Apache Pulsar 社区周报:09-26 ~ 10-09

Apache Pulsar

大数据 开源 云原生 Apache Pulsar 消息中间件

图解面试题-二叉树的所有路径

9527

Java 面试 算法 LeetCode 二叉树

芯片破壁者(十七):“硅谷市长”罗伯特•诺伊斯开启的产业法则

脑极体

怎么才算掌握了JDK中的线程池

AI乔治

Java 编程 架构 jdk 线程池

阿里大牛精心整理了46张PPT,教你弄懂JVM、GC算法和性能调优

Java架构之路

Java 程序员 面试 编程语言 JVM

首发!撸了谷歌大神写的Spring源码笔记后,感觉之前读的都是渣渣

周老师

Java 编程 程序员 架构 面试

打通IO栈:一次编译服务器性能优化实战

AI乔治

Java 编程 架构 io 高性能

区块链来了 职业教育这么干

CECBC区块链专委会

区块链 职业教育

年轻代频繁ParNew GC,导致http服务rt飙高

AI乔治

Java 学习 架构 JVM GC

Hadoop之父祝贺黄色小象十岁生日快乐-InfoQ