【问题标题】:how to tune up spark Jobs on a cluster with different amount of memory and cores如何在具有不同内存和内核数量的集群上调整 Spark 作业
【发布时间】:2018-04-22 17:05:47
【问题描述】:

我正在开发一个 spark 项目,我正在使用具有以下配置的 3 个节点的 hadoop 集群:

  • 8cores 和 16go of Ram(Namenode、Application Master、nodemanager 和 spark master 和 worker)。
  • 4cores and 8go of Ram(datanode、nodemanager和worker)
  • 4cores and 4go of Ram(datanode、nodemanager和worker) 所以我使用以下配置:

    pyspark --master yarn-client --driver-memory 3g --executor-memory 1g --num-executors 3 --executor-cores 1

在我的所有集群性能中,您使用的最佳执行器、内存和内核数量是多少?

【问题讨论】:

    标签: apache-spark hadoop pyspark


    【解决方案1】:

    这基本上归结为您需要处理多少数据。如果你有整个集群来处理数据,你可以完全使用。

    pyspark --master yarn-client --driver-memory 3g --executor-memory 1g --num-executors 3 --executor-cores 1

    这里您没有使用完整的集群。您正在使用 3gb 驱动程序和 1 gb 执行程序,其中 3 个执行程序意味着总共 3gb 内存,而集群中有 12 Gb 内存和 8 个内核。您可以尝试另一种配置

    pyspark --master yarn-client --driver-memory 8g --executor-memory 3g --num-executors 4 --executor-cores 3

    这使用了完整的集群。

    但是,executor-memory 的配置主要是基于作业的需求。您需要通过多次尝试来调整它。您可以查看此document 进行调整。

    【讨论】:

      【解决方案2】:

      This Sandy Ryza 的博客文章很好地解释了各种开销的资源分配,here 是一个方便的 Excel 备忘单。

      但是,如果您是 Spark 新手和/或经常更改集群大小/类型,我是否建议您启用 dynamic allocation

      【讨论】:

      • 感谢
      猜你喜欢
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      相关资源
      最近更新 更多