hadoop - Hadoop 不是更像一个网格而不是一个集群吗?

标签 hadoop grid cluster-computing distributed-computing bigdata

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

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

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

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

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

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

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

最佳答案

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

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

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

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

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

希望这能回答您的问题。

关于hadoop - Hadoop 不是更像一个网格而不是一个集群吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388724/

相关文章:

html - 创建样式嵌套网格/框的选项

apache-spark - Spark 2.2 Join 因庞大的数据集而失败

websphere - 将应用程序移动到 Websphere 集群

java - 使用Java使用Pig Latin连接到Cassandra

hadoop - Spark_SQL 模式和表数据存储在哪里?

hadoop - 基于Map Reduce的OWL文件推理

mysql - Hive 查询中的错误

python - 我如何将 gdal_grid 与点一起使用

java - 如何指挥机器人

apache - 使用 Tomcats(在 apache-tomcat 集群中)作为后面的 apache 服务器的反向代理