5

我听说过“Hadoop 集群”这个词,但这似乎与我对“网格”和“集群”的理解相反。

我的理解是,网格是由 2 台以上的计算机(节点)组成的分布式系统,这些计算机(节点)彼此共享计算资源以解决相同的问题。因此,如果您尝试进行某种重型科学计算、数字运算,您将创建一个机器网格,让所有人针对同一个问题进行协作。

我对集群的理解是,它是一个分布式系统,由 2 台以上的计算机组成,这些计算机都独立工作以解决不同的、较小的问题。因此,您通常会在负载均衡器后面放置一个集群,并让每个节点在负载均衡器为其分配一个小问题时解决一个小问题。

因此,如果我的理解是正确的,那么您可以使用网格来解决少量巨大(计算繁重)的作业,并使用集群来解决大量小型(计算轻量)作业。

所以首先,如果我对网格和集群的理解不正确,请先纠正我!

假设我或多或少是正确的,那么为什么我们有 Hadoop集群?如果 Hadoop 的目的是处理大数据问题(一些计算量很大的问题)并使用大量商品硬件来创建大量能够与其他人协作解决相同问题的节点,那不就是网格吗?

说我们有 Hadoop网格更正确吗?为什么或者为什么不?提前致谢!

4

1 回答 1

9

你的理解是部分正确的。我想补充一些可能会清除一些空气的东西。Hadoop用于解决BigData问题是正确的。但它是通过将一项大任务转换为否来实现的。较小的任务,并且这些较小的任务中的每一个都在不同的机器(节点)上单独解决。节点不相互通信,也不共享任何资源。每台机器都有自己的内存、CPU和磁盘,它们在处理过程中使用,与其他机器的资源无关。

因此,如果您从微观上分析它,您会发现,当您尝试解决“1”个大问题时,您最终会处理“n”个较小的孤立问题,这与网格计算相反,其中所有节点都试图解决相同的问题.

另一个重要方面是,在网格中,您的交互是与整个系统进行交互,而不是与任何节点进行交互,尤其是当您将作业提交到 hadoop 集群进行处理时,情况并非如此。您将作业提交到“主”节点,不必担心“从属”或任务分配等。一旦您的作业提交到主节点,它会自动拆分为“n”个较小的作业,并且master 负责自动在“n”个不同系统上启动进程。

Hadoop 实际上代表了“分布式计算”范式,您可以将其视为网格计算的一个子集。

还有一件事。您在问题中指定了“负载平衡”。您实际上可以在玩 hadoop 时将其可视化。当您开始在 hadoop 集群上处理作业时,所有“n”个较小的作业('因为前面指定的任务拆分)都会以平衡的方式处理。这里的平衡意味着所有从节点获得相等(如果不是完美的话)的数据量来处理相等(理想)数量的资源。

希望这能回答你的问题。

于 2013-05-05T21:46:35.507 回答