Hadoop概述

时间:2023-01-06 11:16:29

Hadoop概述

官方网址:​http://hadoop.apache.org/​

Welcome to Apache™ Hadoop®!

What Is Apache Hadoop?

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

Apache的Hadoop是一个开源的、可靠的、可扩展的系统架构,可利用分布式架构来存储海量数据,以及实现分布式的计算

Hadoop许使用简单的编程模型在计算机集群中对大型数据集进行分布式处理。可以从单个服务器扩展到数千台机器,每个机器都提供本地计算和存储,而不是依靠硬件来提供高可用性。

此外,Hadoop集群的高可用性也非常良好,因为框架内的机制是可以够自动检测和处理故障。

Hadoop的创始人 Doug Cutting 与 Mike Cafarella

Hadoop概述

Doug Cutting  is an advocate and creator of open-source search technology. He originated Lucene and, with Mike Cafarella, Nutch, both open-source search technology projects which are now managed through the Apache Software Foundation. He and Mike Cafarella are also the co-founders of Hadoop.

1985年毕业于美国斯坦福大学,他是 Lucene的创始人,同时也是Nutch和Hadoop的联合创立者,先是参与了Lucene的开发,然后是Nutch,然后是Hadoop。

hadoop名字的来源:这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者,Doug Cutting如此解释Hadoop的得名:"这个名字是我孩子给一头吃饱了的棕​黄色​大象命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手。

Hadoop概述

Mike Cafarella is a computer scientist specializing in database management systems. He is currently an associate professor of computer science at University of Michigan.[1] Along with Doug Cutting, he is one of the original co-founders of the Hadoop and Nutch open-source projects。

Hadoop演变

Hadoop起源于Apache Nutch,Nutch是一个开源的java语言来实现的搜索引擎。

2004年,Cutting和同为程序员出身的Mike Cafarella决定开发一款可以代替当时的主流搜索产品的开源搜索引擎,这个项目被命名为Nutch。它是模仿google搜索引擎创立的开源搜索引擎,后归于apache旗下。

nutch主要完成抓取,提取内容等工作。和solr一样,都是搜索引擎,并且都是基于lucene的。支持全文搜索和爬虫。

但是遇到了一个难题是:nutch抓取海量数据怎么存储和处理呢?

正巧当时这两个人看到了Google发表了两篇篇论文:《Google File System》、《Google MapReduce》。

Cutting根据《Google File System》设计了HDFS:Hadoop Distributed File System

后来Cutting根据《Google MapReduce》设计了Hadoop的MapReduce

Hadoop有两个核心模块:HDFS(存储数据)+MapReduce(计算数据)

2006年,Cutting根据《GFS》论文,设计了nutch的分布式文件系统(HDFS),即Hadoop Distrubuted File System。即Hadoop刚开始的诞生,主要是为了解决nutch搜索海量数据的分布式存储和管理问题。在nutch 0.8版本之前,Hadoop是nutch的子项目。在0.8版本以后,独立出来成单独的项目。后来不久,cutting又根据《Google MapReduce》设计出了基于Hadoop的MapReduce计算框架。

之后,Cutting带着Hadoop项目去了雅虎,当时有一个100多人的团队共同来完善Hadoop,再后来,Yahoo把Hadoop贡献给Apache,称为Apache的*项目。

课外:Hadoop相关历史趣闻

2004年,Cutting和同为程序员出身的Mike Cafarella决定开发一款可以代替当时的主流搜索产品的开源搜索引擎,这个项目被命名为Nutch。在此之前,Cutting所在的公司 Architext(其主要产品为Excite搜索引擎)因没有顶住互联网经济泡沫的冲击而破产,那时的Cutting正处在Freelancer的生涯 中,所以他希望自己的项目能通过一种低开销的方式来构建网页中的大量算法。

幸运的是,Google这时正好发布了一项研究报告,报告中介绍了两款 Google为支持自家的搜索引擎而开发的软件平台。这两个平台一个是GFS(Google File System),用于存储不同设备所产生的海量数据;另一个是MapReduce,它运行在GFS之上,负责分布式大规模数据。基于这两个平台,Cutting最引人瞩目的作品——Hadoop诞生了(后来大家习惯认为Hadoop于2006年1月28日诞生的)。

谈到Google对他们的 “帮助”,Cutting说:“我们开始设想用4~5台电脑来实现 这个项目,但在实际运行中牵涉了大量繁琐的步骤需要靠人工来完成。Google的平台让这些步骤得以自动化,为我们实现整体框架打下了良好的基础。”

说起Google,Cutting也是它成长的见证人之一,这里有一段鲜为人知的故事。早在Cutting供职于Architext期间,有两个年轻人曾去拜访这家公司,并向他们兜售自己的搜索技术,但当时他们的Demo只检索出几百万条网页,Excite的工程师们觉得他们的技术太小儿科,于是就在心里鄙 视一番,把他们给送走了。但故事并未到此结束,这两个年轻人回去之后痛定思痛,决定自己创业。于是,他们开了一家自己的搜索公司,取名为Google。这两个年轻人就是Larry Page和Sergey Brin。在Cutting看来,Google的成功主要取决于,反向排序之后再存储的设计和对自己技术的自信。

出于对时间成本的考虑,在从Architext离职四年后,Cutting决定结束这段Freelancer的生涯,找一家靠谱的公司,进一步完善 Hadoop的性能。他先后面试了几家公司,其中也包括IBM,但IBM似乎对他的早期项目Lucene更感兴趣,至于Hadoop则不置可否。就在此 时,Cutting接受了当时Yahoo!搜索项目负责人Raymie Stata的邀请,于2006年正式加入Yahoo!。在Yahoo!,有一支一百人的团队帮助他完善Hadoop项目,这期间开发工作进行得卓有成效。 不久之后,Yahoo!就宣布,将其旗下的搜索业务的架构迁移到Hadoop上来。两年后,Yahoo!便基于Hadoop启动了第一个应用项目 “webmap”——一个用来计算网页间链接关系的算法。Cutting的时任上司(后为Hortonworks CEO)Eric Baldeschwieler曾说:“在相同的硬件环境下,基于Hadoop的webmap的反应速度是之前系统的33倍。”