浅谈Hadoop云计算的认识

时间:2022-10-04 08:38:58

浅谈Hadoop云计算的认识

摘 要:Hadoop是一个分布式系统基础架构,已经广泛应用在云计算领域,Hadoop的框架最核心的设计是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

关键词:Hadoop;HDFS;MapReduce;云计算

云计算是一种新兴的计算模型,它是并行计算、分布计算、网络计算的综合发展。它的基本原理是将计算、存储及硬件等服务分布在非本地的大量计算机构成的资源池上,用户通过网络获得相应的服务,从而有效的提高资源利用率,实现了真正的按需获取。目前云计算模型众多,但多为商业模型,而Hadoop作为开源的云计算模型,它模仿和实现了Google云计算的主要技术,并且使用Java语言编写,可移植性强,为个人和企业进行云计算方面的研究奠定了基础。

1 什么是云计算

云计算是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连成一片电脑云,甚至可以让你体验每秒10万亿次的计算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己需求进行运算。

云计算分为狭义的云计算和广义的云计算,狭义的云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源,这些资源包括硬件、平台和软件。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。广义的云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是其他的服务。

2 什么是Hadoop

Hadoop的核心设计就是HDFS和MapReduce,HDFS是一个分布式文件系统,MapReduce则是用于并行处理大数据集的软件框架。因此,Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是一种技术的实现。

Hadoop是Apache基金会下的一款开源软件,它实现了包括分布式文件系统HDFS和MapReduce框架在内的云计算软件平台的基础架构,并且在其上整合了包括数据库、云计算管理、数据仓储等一系列平台,其已成为工业界和学术界进行云计算应用和研究的标准平台。Hadoop现在已经广泛应用于包括国外的FaceBook,Twitter,Yahoo!等公司,国内的百度,阿里等,Hadoop运行在数以千计的服务器和数以万计的CPU的集群上。

通俗的说Hadoop是一套开源的、基础是Java的、目前能够让数千台普通、廉价的服务器组成一个稳定的、强大的集群,使其能够对pb级别的大数据进行存储、计算。已经具有了强大稳定的生态系统,也具有很多使用的延伸产品。比如做查询的Pig,做分布式命名服务的ZooKeeper,做数据库的Hive等。

基于Hadoop,用户可编写处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。Hadoop已被全球几大IT公司用作其“云计算”环境中的重要基础软件,如:雅虎正在开发基于Hadoop的开源项目Pig,这是一个专注于海量数据集分析的分布式计算程序。亚马逊公司则基于Hadoop推出了Amazon S3,提供可靠,快速,可扩展的网络存储服务。因此,Hadoop是云计算中一部分技术的实现,而不是全部。

3 关于MapReduce

MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

在函数式语言里,map表示对一个列表(List)中的每个元素做计算,reduce表示对一个列表中的每个元素做迭代计算。它们具体的计算是通过传入的函数来实现的,map和reduce提供的是计算的框架。不过从这样的解释到现实中的MapReduce还太远,仍然需要一个跳跃。再仔细看,reduce既然能做迭代计算,那就表示列表中的元素是相关的,比如我想对列表中的所有元素做相加求和,那么列表中至少都应该是数值吧。而map是对列表中每个元素做单独处理的,这表示列表中可以是杂乱无章的数据。这样看来,就有点联系了。在MapReduce里,Map处理的是原始数据,自然是杂乱无章的,每条数据之间互相没有关系;到了Reduce阶段,数据是以key后面跟着若干个value来组织的,这些value有相关性,至少它们都在一个key下面,于是就符合函数式语言里map和reduce的基本思想了。

4 Hadoop和云计算的关系

Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是一种技术的实现,是云计算技术中重要的组成部分,云计算的概念更广泛且偏向业务而不是必须拘泥于某项具体技术,云计算的存在只是一种新的商业计算模型和服务模式。

5 用Hadoop来做什么

⑴数据备份/文件归档,这利用了hadoop海量数据的存储能力。⑵数据仓库/数据挖掘:分析web日志,分析用户的行为(如:用户使用搜索时,在搜索结果中点击第2页的概率有多大)。⑶搜索引擎:设计hadoop的初衷,就是为了快速建立索引。⑷云计算:中国移动的大云,就是基于hadoop的。⑸研究:hadoop的本质就是分布式计算,又是开源的。

[参考文献]

[1](美)Tom White.Hadoop权威指南(第2版).清华大学出版社,2011.7.

[2](美)Chuck Lam.Hadoop实战.人民邮电出版社,2011.10.

[3]赵书兰.经典Hadoop云计算.电子工业出版社,2013.1.

上一篇:一“导”惊起千层浪 下一篇:移动互联网的演进与4G发展应用