1.1 什么是Hadoop
1.1.1 Hadoop概述
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。HDFS的高容错性、高伸缩性等优点允许用户将Hadoop部署在低廉的硬件上,形成分布式系统;MapReduce分布式编程模型允许用户在不了解分布式系统底层细节的情况下开发并行应用程序。所以用户可以利用Hadoop轻松地组织计算机资源,从而搭建自己的分布式计算平台,并且可以充分利用集群的计算和存储能力,完成海量数据的处理。经过业界和学术界长达10年的锤炼,目前的Hadoop 1.0.1已经趋于完善,在实际的数据处理和分析任务中担当着不可替代的角色。
1.1.2 Hadoop的历史
Hadoop的源头是Apache Nutch,该项目始于2002年,是Apache Lucene的子项目之一。2004年,Google在“操作系统设计与实现”(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce: Simplified Data Processing on Large Clusters(《MapReduce: 简化大规模集群上的数据处理》)的论文之后,受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并命名为Hadoop。到了2008年年初,Hadoop已成为 Apache的顶级项目,包含众多子项目。它被应用到包括Yahoo!在内的很多互联网公司。现在的Hadoop1.0.1版本已经发展成为包含HDFS、MapReduce子项目,与Pig、ZooKeeper、Hive、HBase等项目相关的大型应用工程。
1.1.3 Hadoop的功能与作用
我们为什么需要Hadoop呢?众所周知,现代社会的信息增长速度很快,这些信息中又积累着大量数据,其中包括个人数据和工业数据。预计到2020年,每年产生的数字信息中将会有超过1/3的内容驻留在云平台中或借助云平台处理。我们需要对这些数据进行分析处理,以获取更多有价值的信息。那么我们如何高效地存储管理这些数据、如何分析这些数据呢?这时可以选用Hadoop系统。在处理这类问题时,它采用分布式存储方式来提高读写速度和扩大存储容量;采用MapReduce整合分布式文件系统上的数据,保证高速分析处理数据;与此同时还采用存储冗余数据来保证数据的安全性。
Hadoop中的HDFS具有高容错性,并且是基于Java语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。Hadoop中HDFS的数据管理能力、MapReduce处理任务时的高效率以及它的开源特性,使其在同类分布式系统中大放异彩,并在众多行业和科研领域中被广泛应用。
1.1.4 Hadoop的优势
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发运行处理海量数据的应用程序。它主要有以下几个优点:
高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性。Hadoop是在可用的计算机集簇间分配数据完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性。Hadoop能够在节点之间动态地移动数据,以保证各个节点的动态平衡,因此其处理速度非常快。
高容错性。Hadoop能够自动保存数据的多份副本,并且能够自动将失败的任务重新分配。
1.1.5 Hadoop应用现状和发展趋势
由于Hadoop优势突出,基于Hadoop的应用已经遍地开花,尤其是在互联网领域。Yahoo!通过集群运行Hadoop,用以支持广告系统和Web搜索的研究;Facebook借助集群运行Hadoop来支持其数据分析和机器学习;搜索引擎公司百度则使用Hadoop进行搜索日志分析和网页数据挖掘工作;淘宝的Hadoop系统用于存储并处理电子商务交易的相关数据;中国移动研究院基于Hadoop的“大云”(BigCloud)系统对数据进行分析并对外提供服务。
2008年2月,作为Hadoop最大贡献者的Yahoo!构建了当时最大规模的Hadoop应用。他们在2000个节点上面执行了超过1万个Hadoop虚拟机器来处理超过5PB的网页内容,分析大约1兆个网络连接之间的网页索引资料。这些网页索引资料压缩后超过300TB。Yahoo!正是基于这些为用户提供了高质量的搜索服务。
Hadoop目前已经取得了非常突出的成绩。随着互联网的发展,新的业务模式还将不断涌现,Hadoop的应用也会从互联网领域向电信、电子商务、银行、生物制药等领域拓展。相信在未来,Hadoop将会在更多的领域中扮演幕后英雄,为我们提供更加快捷优质的服务。