《Hadoop实战第2版》——1.1节什么是Hadoop

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将会在更多的领域中扮演幕后英雄,为我们提供更加快捷优质的服务。

时间: 2024-10-31 07:00:28

《Hadoop实战第2版》——1.1节什么是Hadoop的相关文章

《Hadoop实战第2版》——2.1节在Linux上安装与配置Hadoop

2.1 在Linux上安装与配置Hadoop 在Linux上安装Hadoop之前,需要先安装两个程序: 1)JDK 1.6(或更高版本).Hadoop是用Java编写的程序,Hadoop的编译及MapReduce的运行都需要使用JDK.因此在安装Hadoop前,必须安装JDK 1.6或更高版本. 2)SSH(安全外壳协议),推荐安装OpenSSH.Hadoop需要通过SSH来启动Slave列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分开集群

《Hadoop实战第2版》——2.4节安装和配置Hadoop集群

2.4 安装和配置Hadoop集群 2.4.1 网络拓扑 通常来说,一个Hadoop的集群体系结构由两层网络拓扑组成,如图2-3所示.结合实际应用来看,每个机架中会有30~40台机器,这些机器共享一个1GB带宽的网络交换机.在所有的机架之上还有一个核心交换机或路由器,通常来说其网络交换能力为1GB或更高.可以很明显地看出,同一个机架中机器节点之间的带宽资源肯定要比不同机架中机器节点间丰富.这也是Hadoop随后设计数据读写分发策略要考虑的一个重要因素. 2.4.2 定义集群拓扑 在实际应用中,为

《Hadoop实战第2版》——3.4节Hadoop流

3.4 Hadoop流 Hadoop流提供了一个API,允许用户使用任何脚本语言写Map函数或Reduce函数.Hadoop流的关键是,它使用UNIX标准流作为程序与Hadoop之间的接口.因此,任何程序只要可以从标准输入流中读取数据并且可以写入数据到标准输出流,那么就可以通过Hadoop流使用其他语言编写MapReduce程序的Map函数或Reduce函数.举个最简单的例子(本例的运行环境:Ubuntu,Hadoop-0.20.2): bin/hadoop jar contrib/stream

《Hadoop实战第2版》——1.7节Hadoop集群安全策略

1.7 Hadoop集群安全策略众所周知,Hadoop的优势在于其能够将廉价的普通PC组织成能够高效稳定处理事务的大型集群,企业正是利用这一特点来构架Hadoop集群.获取海量数据的高效处理能力的.但是,Hadoop集群搭建起来后如何保证它安全稳定地运行呢?旧版本的Hadoop中没有完善的安全策略,导致Hadoop集群面临很多风险,例如,用户可以以任何身份访问HDFS或MapReduce集群,可以在Hadoop集群上运行自己的代码来冒充Hadoop集群的服务,任何未被授权的用户都可以访问Data

《Hadoop实战第2版》——1.3节Hadoop体系结构

1.3 Hadoop体系结构如上文所说,HDFS和MapReduce是Hadoop的两大核心.而整个Hadoop的体系结构主要是通过HDFS来实现分布式存储的底层支持的,并且它会通过MapReduce来实现分布式并行任务处理的程序支持.下面首先介绍HDFS的体系结构.HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的.其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作:集群中的DataNod

《Hadoop实战第2版》——导读

目 录 前 言第1章 Hadoop简介1.1 什么是Hadoop1.2 Hadoop项目及其结构1.3 Hadoop体系结构1.4 Hadoop与分布式开发1.5 Hadoop计算模型-MapReduce1.6 Hadoop数据管理1.7 Hadoop集群安全策略1.8 本章小结第2章 Hadoop的安装与配置2.1 在Linux上安装与配置Hadoop2.2 在Mac OSX上安装与配置Hadoop2.3 在Windows上安装与配置Hadoop2.4 安装和配置Hadoop集群2.5 日志分

《Hadoop实战第2版》——3.2节MapReduce计算模型

3.2 MapReduce计算模型 要了解MapReduce,首先需要了解MapReduce的载体是什么.在Hadoop中,用于执行MapReduce任务的机器有两个角色:一个是JobTracker,另一个是TaskTracker.JobTracker是用于管理和调度工作的,TaskTracker是用于执行工作的.一个Hadoop集群中只有一台JobTracker. 3.2.1 MapReduce Job 在Hadoop中,每个MapReduce任务都被初始化为一个Job.每个Job又可以分为两

《Hadoop实战第2版》——1.2节Hadoop项目及其结构

1.2 Hadoop项目及其结构 现在Hadoop已经发展成为包含很多项目的集合.虽然其核心内容是MapReduce和Hadoop分布式文件系统,但与Hadoop相关的Common.Avro.Chukwa.Hive.HBase等项目也是不可或缺的.它们提供了互补性服务或在核心层上提供了更高层的服务.图1-1是Hadoop的项目结构图. 下面将对Hadoop的各个关联项目进行更详细的介绍. 1)Common:Common是为Hadoop其他子项目提供支持的常用工具,它主要包括FileSystem.

《Hadoop实战第2版》——2.2节在Mac OSX上安装与配置Hadoop

2.2 在Mac OSX上安装与配置Hadoop 由于现在越来越多的人使用Mac Book,故笔者在本章中增加了在Mac OS X上安装与配置Hadoop的内容,供使用Mac Book的读者参考. 2.2.1 安装Homebrew Mac OS X上的Homebrew是类似于Ubuntu下apt的一种软件包管理器,利用它可以自动下载和安装软件包,安装Homebrew之后,就可以使用Homebrew自动下载安装Hadoop.安装Homebrew的步骤如下: 1)从Apple官方下载并安装内置GCC