WEB开发网
开发学院服务器云计算 在云中使用 MapReduce 和负载平衡 阅读

在云中使用 MapReduce 和负载平衡

 2010-08-26 00:00:00 来源:WEB开发网   
核心提示: 这些服务意味着,客户端将使用 Hadoop、Eclipse 等平台以及在搜索文件或使用某些软件时使用的操作系统,在云中使用 MapReduce 和负载平衡(3),此外,为了存储其数据(数据库或文件),忽略其具体的实现)提供给用户的 Reduce 函数,这样,在云中,客户端将不得不占用一些数据中心

这些服务意味着,客户端将使用 Hadoop、Eclipse 等平台以及在搜索文件或使用某些软件时使用的操作系统。此外,为了存储其数据(数据库或文件),在云中,客户端将不得不占用一些数据中心(IaaS)的内存空间。所有这些对终端用户都是透明的。

Randomized Hydrodynamic Load Balancing:基本内容

负载平衡用来确保在使用其他资源时您现有的资源都不是空闲的。若要平衡负载分布,可以将负载从源节点(有多余工作负载)的迁移到相对较轻的负载目标节点。

在运行时应用负载平衡时,它被称之为动态负载平衡 — 这可以根据执行节点选择直接实现或以迭代的方式实现:

迭代的方法通过几个迭代步骤确定最终目标节点。

直接方法在一个步骤中选择最终目标节点。

本文使用 Randomized Hydrodynamic Load Balancing 方法,这是一种同时利用了直接和迭代方法的混合方法。

MapReduce:基本内容

MapReduce 程序用于以并行方式计算大量数据。这就需要在很多计算机之间分配工作负荷。Hadoop 提供了一种系统的方法来实现这种程序设计范式。

计算需要输入一组键/值对,生成一组输出键/值对。计算涉及的两个基本操作:Map 和 Reduce。

用户编写的 Map 操作需要输入并生成一组中间键/值对。MapReduce 库将所有与同一中间键 #1 相关联的中间值组合到一起,并且将它们传递给 Reduce 功能。

同样是用户编写的 Reduce 函数接受一个中间键 #1 和该键的一组值。它将这些值合并形成可能较小的一组值。通常每次 Reduce 调用只生成一个输出值 0 或 1。中间值通过迭代器(一种可以让程序员遍历所有集合元素的对象,忽略其具体的实现)提供给用户的 Reduce 函数。这样,您就可以处理太大而无法放入内存的值列表。

上一页  1 2 3 4 5  下一页

Tags:云中 使用 MapReduce

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接