2011-03-18 23 views

回答

1

MapReduce是一种处理模型;它会准确告诉你你的处理任务应该适合什么。

  1. 你的处理必须面向批处理
  2. 你必须能够将您的工作转变成一个(组)映射和减少步骤。
  3. 为了让MapReduce的可伸缩性具有任何优势,您必须能够将工作分成足够多的可独立处理的独立(!!)块。

Hadoop确实(除其他之外)MapReduce具有额外的优势,即您可以在1000个系统上可靠地并行运行作业(如果您有足够的独立作品)。

鉴于这些限制:有些事情不能完成,很多事情都可以完成。 分析日志文件(即一大组独立的行)甚至网络分析(每一个访客/会话都可以单独处理)是最常见的应用程序之一。

所以是的,你的任务必须进行改造以适应模型的工作。

0

Hadoop实际上是一个用于进程拆分/组合的引擎。你将一个任务分解成相似的数据集[map],然后将相似的集合合并成一个结果[reduce/merge]。

它是一种制作并行应用程序的方法。映射和缩小分布在集群内的不同节点上。它是一个非常严格的任务划分和可以在进程之间传递哪些数据[必须可序列化和断开连接到其他地图/数据中的数据]

+0

同意这个抽象描述,mapreduce也意味着解析大文件e.G.网络服务器日志。 – 2011-03-18 18:57:37

+0

这听起来像是一个问题,而不是应用程序imo。 – monksy 2011-03-18 20:26:32

0

基本上,您必须能够将您的任务“拆分”为独立的任务。

相关问题