Hadoop之父Doug Cutting
Doug Cutting 看到他儿子在牙牙学语时,抱着黄色小象,亲昵的叫 hadoop,他灵光一闪,就把这技术命名为 Hadoop,而且还用了黄色小象作为标示 Logo,不过,事实上的小象瘦瘦长长,不像 Logo 上呈现的那么圆胖。“我儿子现在 17 岁了,所以就把小象给我了,有活动时就带着小象出席,没活动时,小象就丢在家里放袜子的抽屉里。” Doug Cutting 大笑着说。
图丨Doug Cutting 手拿的黄色小象就是命名 Hadoop 的灵感来源
1985年,Cutting毕业于美国斯坦福大学。他并不是一开始就决心投身IT行业的,在大学时代的头两年,Cutting学习了诸如物理、地理等常规课程。因为学费的压力,Cutting开始意识到,自己必须学习一些更加实用、有趣的技能。这样,一方面可以帮助自己还清贷款,另一方面,也是为自己未来的生活做打算。因为斯坦福大学座落在IT行业的“圣地”硅谷,所以学习软件对年轻人来说是再自然不过的事情了。
Cutting的第一份工作是在Xerox做实习生,Xerox当时的激光扫描仪上运行着三个不同的操作系统,其中的一个操作系统还没有屏幕保护程序。因此,Cutting就开始为这套系统开发屏幕保护程序。由于这套程序是基于系统底层开发的,所以 其他同事可以给这个程序添加不同的主题。这份工作给了Cutting一定的满足感,也是他最早的“平台”级的作品。
尽管Xerox让Cutting积累了不少技术知识,但他却认为,自己当时搞的这些研究只是纸 上谈兵,没有人试验过这些理论的可实践性。于是,他决定勇敢地迈出这一步,让搜索技术可以为更多人所用。
1997年底,Cutting开始以每周两天的时间投入,在家里试着用Java把这个想法变成现实,不久之后,Lucene诞生了。作为第一个提供全文文本搜索的开源函数库,Lucene的伟大自不必多言。之后,Cutting再接再厉,在 Lucene的基础上将开源的思想继续深化。
2004年,Cutting和同为程序员出身的Mike Cafarella决定开发一款可以代替当时的主流搜索产品的开源搜索引擎,这个项目被命名为Nutch。Doug Cutting 希望以开源架构开发出一套搜索技术,类似于现在的 Google Search 或是微软的 Bing,刚好 2004 年 Google Labs 发布了关于自家大数据分析、MapReduce 算法的论文。Doug Cutting 利用 Google 公开的技术扩充他已经开发出来的 Lucene 搜索技术,进而打造出了 Hadoop。
2006年项目成立的一开始,“Hadoop”这个单词只代表了两个组件——HDFS和MapReduce。到现在,这个单词代表的是“核心”(即Core Hadoop项目)以及与之相关的一个不断成长的生态系统。这个和Linux非常类似,都是由一个核心和一个生态系统组成。
Hadoop 是基于开放源代码所建构,用于分散式处理和分析电脑丛集上的巨量资料集,也可以想成是一个能够储存并管理大量资料的云端平台。它主要有两个核心技术,分别是分布式档案系统(Hadoop Distributed File System,HDFS)以及 MapReduce 技术。正因为透过多节点分工来处理巨量资料,解决了档案储存的问题,同时也大幅缩短了运作时间,让 Hadoop 成了大数据的主流技术,知名大企业如Google、Facebook、沃尔玛、银联、联通、台积电等,都利用了 Hadoop 技术。
Doug Cutting 表示,Hadoop 的意义不在技术,更大的意义在于“数字转型”(digital transformation),从 Hadoop 的成功经历我们可以学到几件事:首先、开放源代码已经是必要的,例如在 20 年前他开发出 Hadoop 的前身— Lucene 开源代码搜寻技术时,并没有料想到 Lucene 会成功,“因为它并不是最好的技术,也不完美,但它因为是属于开放源代码,透过社群的力量,使它成为了最好的搜索技术。”对使用者来说,现在更多想要的是开放源代码的软件。第二件事就是数字转型需要不同的运算跟储存架构。在完成 Lucene 之后几年,Cutting 就开始投入到 Hadoop 的研发之中,“你可以看到整体的应用已经兴起,它的成功在于满足了大家的需求。”在 Hadoop 之前,几乎所有的资料或应用程序都要被储存在分开的系统里,但有了 Hadoop 之后,它们可以被存在单一的系统里,在扩充性、处理运算方面有更好的成效。
Doug Cutting 指出,Hadoop 与机器学习、AI 有高度关联性,要训练、测试、评价人工智能都需要数据,许多开发者在 Hadoop 平台上写了很多应用程序,可以利用这个平台搜集各种巨量数据,支援 AI 和机器学习的数据也是爆炸性成长,很难有一家公司可以做到提供这么大量的工具。
现在,Doug Cutting 的身份除了是 Hadoop 之父外,也是 Cloudera 的首席架构师。Cloudera 可以说是 Hadoop 生态圈里最知名的公司,核心产品是为企业客户搭建基于 Hadoop 的大数据平台,帮助企业安装、配置、运行 Hadoop 以进行海量数据的处理、分析以及机器学习。
Doug Cutting给2017寄语时,指出五种让开源项目成功的方法:
1. 拥抱开源的不断改变和演进
不断地变化,这是每一个刚接触开源技术的人需要学习的第一课,也是开源有别于传统软件的最大不同之处。开源的本质是易变、灵活,它的新项目常常起源于一些特别的用例。这种动态的循环促使产品变得更好、更快。因此,公司如果想从开源获得完全的好处,他们必须对技术转变保持开放的心态。Spark和MapReduce的辩论就完美的体现了这点的重要性:
事实上,人们在构建新的应用时,MapReduce用得越来越少,而Spark成为他们默认的数据处理引擎。MapReduce正逐渐成为Hive、Pig的底层引擎,这并不意味着它过时了。它还会为现存应用很好地工作很多年,而且对某些大规模批量加载来说仍然是卓越的工具。这一趋势遵循开源技术的自然演进:MapReduce是开源数据生态系统的1.0引擎,Spark是2.0,而某一天会出现3.0让Spark成为历史。
2. 当引入一个新技术栈时,从小开始、由上而下
先不去考虑要构建、部署什么样的解决方案,我们现在有了很多通用数据平台和很多工具,它们能灵活地组合在一起去做搜索、流处理、机器学习还有更多事情。这些工作需要的不仅仅是一套不同的技能,而且还需要管理方式、组织结构等在文化上的转变。为此,重要的是要获得组织内高层的支持,并让数据管理列入董事会层面的一项重点议题。同时,建议拿一些新的应用来逐步建立一个新文化,而不是要取代所有的一切,这样可以让大家通过一个个具体的用例来适应这个变化。
3. 仔细挑选开源软件以避免云供应商捆绑
随着使用云计算的企业组织和产业越来越多,应该考虑到开源软件不仅会带来越来越好的健壮性、可扩展性和安全性,而且也可以帮助他们避免被云供应商捆绑。通过开源平台的构建,组织可以采用云供应商套利以降低成本,可以使用不同地域的不同云,或者基于云和内部部署的混合方式。事实上,开源平台已经证明了自己的技术优越性,2017年也许会取得更多的落地。大量的机构通过开源项目进行合作,单一的供应商要去竞争是很困难的。例如,现在那些开源数据系统在性能和灵活性上就处于领先地位,并且改进得更加迅速。
4. 对求职者来说,开源生态环境里要关注森林,而不是树木
IT领域的求职者,不管是编程还是数据科学,不应该仅仅专注于掌握个别技术,而应该关注理解开源数据生态系统各个组成部分的最佳利用,以及如何把它们连接起来解决问题。这种上层建筑的理解是企业在技术创新中最有价值的技能。随着新技术的到来,至关重要的是了解它们的适应力如何、它们能取代什么、它们能做到什么。
5. 在技能缺口中寻找机会
大数据的技能缺口将在明年保持相对稳定,但这不应该成为人们采用Hadoop以及其它开源技术的阻碍。大多数人都知道,当新的技术被创造出来并争夺用户时,它们对外界而言是很陌生的。只有当一个特定类型的软件成为某个规范的成熟而标准的一部分,才会开始出现大量熟练使用它的人,而即使如此仍然会存在技能缺口。只有当我们不再对技术栈做大的改进时,才会消除这种缺口,不过Doug不认为我们会希望这样做。简而言之,技能缺口是影响平台变革速度的主要因素之一,也是即将来临的创新的标志。