我听过“Hadoop集群”这个词,但它似乎与我对“网格”和“集群”的理解相反。
我的理解是网格是一个由2台以上计算机(节点)组成的分布式系统,这些计算机(节点)彼此共享计算资源,以便解决同样的问题。因此,如果你正在尝试进行某种重型科学计算,数字运算,你可以创建一个机器网格,以便在同一个问题上进行协作。
群集的 是一个分布式系统,由2台以上的计算机组成,这些计算机全部独立工作以解决不同的小问题。因此,您通常将一个集群放在负载均衡器后面,让负载均衡器为每个节点分配一个小问题。
所以,如果我的理解是正确的,那么你使用网格来解决少量巨大的(计算量很大的)工作,以及用于解决大量小型(计算轻量级)工作的集群。
首先,如果我对网格和群集的理解不正确,请先纠正我!
假设我或多或少是正确的,那为什么我们有Hadoop 集群?如果Hadoop的目的是解决大数据问题(一些计算密集的问题)并使用大量商品硬件来创建大量能够与其他节点协作以解决相同问题的节点,那么不是网格
说我们有Hadoop 网格更正确吗?为什么或者为什么不?提前谢谢!
答案 0 :(得分:9)
您的理解部分正确。我想补充一些可能清除空气的东西。 Hadoop用于解决BigData问题是正确的。但它通过将一个大任务转换为一个no来实现。较小的任务和每个较小的任务分别在不同的机器(节点)上解决。节点不相互通信,也不共享任何资源。每台机器都有自己的内存,CPU和磁盘,在处理过程中使用,与其他机器的资源无关。
所以,如果你用显微镜分析它,你会发现当你试图解决“1”大问题时,你最终会处理“n”个较小的孤立问题,与网格计算相反,其中所有节点都试图解决同样的问题。
另一个重要的方面是,在网格中,您的交互与整个系统有关,而不是与任何节点交互,而当您向hadoop集群提交作业进行处理时则不是这种情况。您将作业提交到“主”节点,而不必担心“从属”或任务分发等。一旦您的作业提交到主节点,它将自动分成“n”个较小的作业,并且master负责自动在“n”个不同系统上启动进程。
Hadoop实际上代表了“分布式计算”范例,您可以将其视为网格计算的一个子集。
还有一件事。您已在问题中指定了“负载平衡”。实际上,您可以在玩hadoop时将其可视化。当您在hadoop集群上开始处理作业时,所有“n”个较小的作业(前面指定的'任务分割的coz)将以平衡的方式处理。这里的平衡意味着所有从属节点在相同(理想)的资源量上处理相等(大约如果不是完美的)数据量。
希望这能回答你的问题。