云计算背后的秘密(1)-MapReduce

在Google数据中心会有大规模数据需要处理,比如被网络爬虫(Web Crawler)抓取的大量网页等。由于这些数据很多都是PB级别,导致处理工作不得不尽可能的并行化,而Google为了解决这个问题,引入了MapReduce这个分布式处理框架。

AD:

【引言】之前我写过一些关于云计算误区的文章,虽然这些文章并不是非常技术,但是也非常希望它们能帮助大家理解云计算这一新浪潮。最近,我将云计算背后的一些核心技术介绍给读者,由于云计算的核心技术是我最熟悉和最擅长,而且宣传这些技术也是我写《剖析云计算》一书和建立PeopleYun.com站点的初衷,这就是“云计算背后的秘密”这个系列的由来。

在这个新系列中将介绍多种云计算所涉及到的核心技术,包括分布式处理、分布式数据库、分布式锁、分布式文件系统、多租户架构和虚拟化等,而且将会介绍这些技术相关的产品和用例,以帮助大家进一步理解这些技术。预计每周会更新一篇,总长度会在10篇左右,希望大家能喜欢,而本文则是这个系列的第一篇。


在Google数据中心会有大规模数据需要处理,比如被网络爬虫(Web Crawler)抓取的大量网页等。由于这些数据很多都是PB级别,导致处理工作不得不尽可能的并行化,而Google为了解决这个问题,引入了MapReduce这个分布式处理框架。

技术概览

MapReduce本身源自于函数式语言,主要通过"Map(映射)"和"Reduce(化简)"这两个步骤来并行处理大规模的数据集。首先,Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作,且原始列表不会被更改,会创建多个新的列表来保存Map的处理结果。也就意味着,Map操作是高度并行的。当Map工作完成之后,系统会接着对新生成的多个列表进行清理(Shuffle)和排序,之后,会这些新创建的列表进行Reduce操作,也就是对一个列表中的元素根据Key值进行适当的合并。下图为MapReduce的运行机制:
 

 

图1. MapReduce的运行机制

接下来,将根据上图来举一个MapReduce的例子来帮助大家理解:比如,通过搜索引擎的爬虫(Spider)将海量的Web页面从互联网中抓取到本地的分布式文件系统中,然后索引系统将会对存储在这个分布式文件系统中海量的Web页面进行平行的Map处理,生成多个Key为URL,Value为html页面的键值对(Key-Value Map),接着,系统会对这些刚生成的键值对进行Shuffle(清理),之后,系统会通过Reduce操作来根据相同的key值(也就是URL)合并这些键值对。

优劣点

谈到MapReduce的优点,主要有两个方面:其一,通过MapReduce这个分布式处理框架,不仅能用于处理大规模数据,而且能将很多繁琐的细节隐藏起来,比如,自动并行化、负载均衡和灾备管理等,这样将极大地简化程序员的开发工作;其二,MapReduce的伸缩性非常好,也就是说,每增加一台服务器,其就能将差不多的计算能力接入到集群中,而过去的大多数分布式处理框架,在伸缩性方面都与MapReduce相差甚远。而 MapReduce最大的不足则在于,其不适应实时应用的需求,所以在Google最新的实时性很强的Caffeine搜索引擎中,MapReduce的主导地位已经被可用于实时处理Percolator系统所代替,其具体细节,将在本系列接下来的文章中进行介绍。

相关产品

除了Google内部使用的MapReduce之外,还有,由Lucene之父Doug Cutting领衔的Yahoo团队开发,Apache管理的MapReduce的开源版本Hadoop,而且一经推出,就受到业界极大的欢迎,并且衍生出HDFS、ZooKeeper、Hbase、Hive和Pig等系列产品。

实际用例

在实际的工作环境中,MapReduce这套分布式处理框架常用于分布式grep、分布式排序、Web访问日志分析、反向索引构建、文档聚类、机器学习、数据分析、基于统计的机器翻译和生成整个搜索引擎的索引等大规模数据处理工作,并且已经在很多国内知名的互联网公司内部得到极大地应用,比如百度和淘宝。

最后,如果大家对MapReduce感兴趣的话,可以到Hadoop的官方站点上下载并试用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 云计算基础知识包括以下内容: 1. Hadoop:是一个开源的分布式计算框架,用于处理大规模数据集的存储和处理。 2. Spark:是一个快速、通用、可扩展的大数据处理引擎,支持分布式数据处理和机器学习等应用。 3. MapReduce:是一种分布式计算模型,用于处理大规模数据集的并行计算。 4. HBase:是一个分布式的、面向列的NoSQL数据库,用于存储和管理大规模结构化数据。 5. IaaS:是基础设施即服务,提供虚拟化的计算、存储、网络等基础设施资源。 6. PaaS:是平台即服务,提供应用程序开发和部署所需的平台环境和工具。 7. SaaS:是软件即服务,提供基于云计算的应用程序服务,用户可以通过网络访问和使用这些应用程序。 ### 回答2: 云计算是指利用互联网来提供计算、存储、应用等服务的一种技术,它具有高效、可扩展性强、灵活性高、安全性好的特点。在云计算领域,Hadoop、Spark、MapReduce、Hbase、IaaS、PaaS、SaaS是非常重要的概念。 1、Hadoop Hadoop是由Apache基金会开发的,用于分布式存储和分析大型数据集的开源软件框架。它主要解决了海量数据的存储和处理问题,将数据切分存储在多台机器上,通过分布式计算的方式实现对数据的快速分析和处理,使得海量数据的处理速度大大提高。 2、Spark Spark是一种基于内存的分布式计算引擎,它支持多种编程语言,比如Java、Scala和Python等。Spark在处理数据的效率上优于Hadoop,其核心优点在于强大的内存计算和快速的数据处理能力。Spark还支持机器学习、数据挖掘、图形计算等应用场景。 3、MapReduce MapReduce是一种分布式计算框架,它可以实现对大规模数据的分布式计算和处理。MapReduce是由Google公司提出的,用于支持Web搜索引擎中的大规模数据处理,后来被Hadoop框架采纳。MapReduce将数据分成很多个小块,然后将小块分别传到不同的机器上进行处理,最后将结果进行合并。 4、Hbase Hbase是一款基于Hadoop的分布式数据库系统,它专门用于存储和管理大型数据集中的海量数据。Hbase采用列族式存储结构,数据可以按列存储并且可以进行快速的数据查询,利用Hbase可以处理TB级别的数据。 5、IaaS IaaS,即基础设施即服务(Infrastructure as a Service),是云计算的一种基本服务模式。它为用户提供网络、安全、计算能力和存储资源等基础服务,用户可以自由地购买所需的计算资源,通过自己的系统管理工具对计算资源进行管理。 6、PaaS PaaS,即平台即服务(Platform as a Service),是为开发者提供的一种云服务模式。PaaS提供了一个完整的开发环境,包括开发工具、数据库、中间件、操作系统等,使得开发者可以专注于应用程序的开发而不需关注底层的系统和软件平台。 7、SaaS SaaS,即软件即服务(Software as a Service),是云计算中最为普及的一种服务模式。SaaS通过互联网向用户提供各种类型的软件应用服务,例如企业管理、营销、在线办公、客户关系等服务,用户可以通过互联网随时随地使用这些应用软件而无需购买和维护实体硬件和软件。 ### 回答3: 云计算是当今信息技术的一项重要领域,因其优异的性能、灵活性和可扩展性而备受欢迎。其中,Hadoop、Spark、MapReduce、HBase、IaaS、PaaS、SaaS 可谓云计算中的重要基础知识,以下对它们做进一步介绍: 1. Hadoop: Hadoop 是当今最流行的大数据分析工具之一,其底层原理是基于分布式数据存储和处理的 MapReduce 算法。通过 Hadoop,用户可以将大数据分割成许多小的任务进行并行处理,从而大大提高数据处理的效率。 2. Spark: Spark 是另一个重要的大数据处理框架,属于基于内存的计算平台。Spark 采用了更为高效的内存计算方式来处理大数据,这样就可以将数据直接读入内存进行处理,提高处理速度。 3. MapReduce: MapReduce 算法是大数据领域中一种基于分布式计算的数据处理方法,它将大数据分成小数据块,再通过多台计算机上的 Map 和 Reduce 两个步骤进行处理,最终得出结论。 4. HBase: HBase 是一种基于 Hadoop 的分布式、可扩展的 NoSQL 数据库系统,它允许对海量数据进行非结构化的访问和处理,同时具有高可靠性、高可用性以及高性能等优势。 5. IaaS: IaaS 指的是基础设施即服务,是云计算提供商为用户提供基础设施的一种服务模式,用户可以根据自己的需求租用虚拟机、存储等基础设施,并可以根据自己的需求灵活调整。 6. PaaS: PaaS 指的是平台即服务,也是云计算提供商向用户提供服务的一种模式,使用 PaaS 的用户可以通过云计算平台构建、部署、测试和扩展应用程序。 7. SaaS: SaaS 指的是软件即服务,它是一种基于云计算的软件提供方式,对于用户来说,无需安装和维护软件,只需通过互联网即可使用。SaaS 具有灵活性和成本效益,因此备受欢迎。 以上,就是云计算五大基础知识以及 IaaS、PaaS、SaaS 这三种服务模式的简单介绍。云计算技术更新迭代速度快,如今还出现了更多的先进云计算技术和应用案例,这些都将为用户提供更为高效、灵活和安全的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值