【问题标题】:Apache Spark: Cluster with nodes of different configurationApache Spark:具有不同配置节点的集群
【发布时间】:2020-07-08 00:21:43
【问题描述】:

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

【问题讨论】:

    标签: apache-spark hdfs cluster-computing mapr


    【解决方案1】:

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

    1) spark 在分布式计算中的行为是什么

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

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

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

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

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

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

    【讨论】:

    • 对不起,这是一个普遍的答案。这个问题也不是很具体。
    • 我们正在使用 MapR 和 HDFS。另外,我要问的 (3) 是如何在随机播放时节省内存,因为这是一项昂贵的操作。
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 2013-04-05
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多