Apache Spark:具有不同配置节点的集群

Apache Spark: Cluster with nodes of different configuration

我有一个生产箱,它有 14 个节点。其中 14、12 个节点配置相同,其中 2 个配置更高(几乎是 3 倍),所以 1> 它会影响 spark 的整体资源利用率吗? 2> 我怎样才能利用只能从这两个节点获得的额外内存。 3> 此外,如果在此过程中,我的 rdd > avaiable 资源,它将在内存中对任务进行部分处理,并再次从 HDFS 加载剩余数据。那么如何克服这种情况以获得最佳性能

你的问题确实提出了三个问题:

1) spark在分布式计算中的表现如何

2) I/O 负载和数据将如何在集群中分布

3) 您使用的是 MapR(由标签暗示)还是 HDFS(由标签和问题文本暗示)。

对于 1,根据您 运行 Spark 的方式,您通常可以将某些节点定义为拥有比其他节点更多的资源。例如,如果您使用的是我们在 MapR 开发的 Spark 运算符,您可以进行相当精确的估计和控制。

对于 2,如果启用平衡器功能,I/O 负载和数据量通常在 MapR 中得到很好的平衡。 HDFS 通常不会做得那么好。这也将在一定程度上取决于您的工作负载和集群的历史记录。例如,如果您有 12 个几乎满的相同节点,并且您添加了两个当然最初为空的大节点,那么新数据将转到新节点,直到平衡器有时间将数据移动到新的大节点上。如果您的新数据是您主要分析的数据,这可能会导致 I/O activity.

的不平衡

在 MapR 中,您可以通过限制新数据而非旧数据的位置来轻松避免这种情况。这意味着新数据只会填充旧节点,而平衡器会将旧数据移动到新节点。一旦你有了合理的平衡,你就可以让新数据存在于任何地方。

3,只有你能回答。将 MapR 用于小型集群有明显且实质性的优势,因为您不必将任何节点用作名称节点。当然,大规模使用 MapR 也有明显和实质性的优势,但它们是不同的。