Apache Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。可以让用户在不了解分布式底层细节的情况下,开发出可靠、可扩展的分布式计算应用。

Apache Hadoop 框架,允许用户使用简单的编程模型来实现计算机集群的大型数据集的分布式处理。它的目的是支持从单一服务器到上千台机器的扩展,充分利用了每台机器所提供本地计算和存储,而不是依靠硬件来提供高可用性。其本身被设计成在应用层检测和处理故障的库,对于计算机集群来说,其中每台机器的顶层都被设计成可以容错的,以便提供一个高度可用的服务。

Apache Hadoop 的框架最核心的设计就是:HDFS 和 MapReduce。HDFS 为海量的数据提供了存储,而 MapReduce 则为海量的数据提供了计算。

Apache Hadoop 简介

正如上一节 MapReduce 所提到的那样,Apache Hadoop 受到了 Google 的 GFS 和 MapReduce 的启发,而前者产生了 Apache Hadoop 的分布式文件系统 NDFS (Nutch Distributed File System) ,而后者也被纳入到 Apache Hadoop 作为核心组件之一。

Apache Hadoop 的雏形开始于2002年的 Apache 的 Nutch。Nutch 是一个开源 Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和 Web 爬虫。

随后在 2003 年 Google 发表了一篇技术学术论文关于 Google 文件系统(GFS)。GFS 也就是 Google File System,是 Google 公司为了存储海量搜索数据而设计的专用文件系统。

2004年 Nutch 创始人 Doug Cutting(同时也是 Apache Lucene 的创始人) 基于 Google 的 GFS 论文实现了分布式文件存储系统名为 NDFS。

2004年 Google 又发表了一篇技术学术论文,向全世界介绍了 MapReduce。2005年 Doug Cutting 又基于 MapReduce,在 Nutch 搜索引擎实现了该功能。

2006年,Yahoo! 雇用了 Doug Cutting,Doug Cutting 将 NDFS 和MapReduce 升级命名为 Hadoop。Yahoo! 开建了一个独立的团队给 Goug Cutting 专门研究发展 Hadoop。

2008年1月,Hadoop 成为了 Apache 顶级项目。之后 Hadoop 被成功的应用在了其他公司,其中包括 Last.fm、Facebook、《纽约时报》等。

2008年2月,Yahoo! 宣布其搜索引擎产品部署在一个拥有1万个内核的 Hadoop 集群上。

2008年4月,Hadoop 打破世界记录,称为最快排序1TB数据的系统。有关该报道的记录,可以参阅《Apache Hadoop Wins Terabyte Sort Benchmark》(见 https://developer.yahoo.com/blogs/hadoop/apache-hadoop-wins-terabyte-sort-benchmark-408.html)。

截止目前,Apache Hadoop 的最新版本为 2.7.3。

Apache Hadoop 它主要有以下几个优点:

  • 高可靠性。Hadoop 按位存储和处理数据的能力值得人们信赖。
  • 高扩展性。Hadoop 是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  • 高效性。Hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  • 高容错性。Hadoop 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
  • 低成本。Hadoop 是开源的,项目的软件成本因此会大大降低。