【问题标题】:Isn't Hadoop more of a grid than a cluster?Hadoop 不是更像是一个网格而不是一个集群吗?
【发布时间】:2013-04-29 14:48:20
【问题描述】:

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

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

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

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

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

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

说我们有 Hadoopgrids 是否更正确?为什么或者为什么不?提前致谢!

【问题讨论】:

标签: hadoop grid cluster-computing distributed-computing bigdata


【解决方案1】:

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

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

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

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

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

希望这能回答你的问题。

【讨论】:

  • 感谢@Tariq (+1) - 很棒的答案,但它让我在一个方面感到困惑!您的第 3 段有点有点令人困惑:您是说 Hadoop 就像一个网格,因为您将 1 个作业提交给主服务器,并且只与该主服务器交互?或者您是说 Hadoop 不像 网格,您必须将作业分解为更小的单元,并将每个单元提交给从站?感谢您的澄清!
  • 不客气 TM 并为您的困惑感到抱歉。我的意思是,在网格中,您将作业作为一个整体提交给系统,而不是使用任何特定节点。另一方面,在分布式计算环境中,您只需继续向特定节点发出请求,在 Hadoop 的情况下,该节点是主节点。 HTH
  • 再次感谢@Tariq,但仍然不确定:Hadoop 适合这两种模型中的哪一种?!?
  • 我会说分布式计算 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 1970-01-01
相关资源
最近更新 更多