【问题标题】:In Spark, can I configure different CPU / memory for each executor using Spark Stand Alone?在 Spark 中,我可以使用 Spark Stand Alone 为每个执行程序配置不同的 CPU/内存吗?
【发布时间】:2023-04-05 10:31:01
【问题描述】:

我有一个异构集群。例如,我有以下机器:

  • 1核1g
  • 2核2g
  • 3核3g
  • 5核5g
  • 5核5g

我的 Spark 集群处于独立模式。

问题是当我使用带有默认参数的spark-submit 时,它将使用我的整个集群资源。但是当我在应用程序中进入仪表板时,我可以看到一个执行器有 5 个核心但只使用了 1g 内存。

如果我配置executor-memory 5g,那些内存小于5g的节点不会启动executor。

如何配置 Spark 以在一个应用程序中支持不同规格的执行器?

例如:

  • executor1:1核1g
  • executor2:2core 2g
  • ..等

【问题讨论】:

  • 我从未见过有人这样做。集群中的所有 Worker 都是相同的。 AWS 可能与 EMR 不同。
  • 用于 YARN,而不是独立的
  • 那么Spark Executor中的内存一定要固定?
  • 实际上,对于 YARN,它是不同的,但是对于我自己拥有的 Stand Alone,您可以为每个 Worker 做。 docs.cloudera.com/documentation/enterprise/5-2-x/topics/…
  • 查看新答案,抱歉,我最初忘记了 Stand Alone 方面。

标签: apache-spark


【解决方案1】:

我在一台实验性的单节点机器上安装了一个独立安装(沿着 YARN)。

如果您有多个节点,那么您确实可以按照https://docs.cloudera.com/documentation/enterprise/5-2-x/topics/cdh_ig_spark_configure.html 为 Spark Stand Alone Cluster 阅读的内容设置属性 per Node / Worker。我不是 YARN 专家,我只是按照过去在集群模式下的设置运行东西,所以我无法评论 YARN 视角,只能评论 Stand Alone。

但是你不能做你暗示的事情,通过使用 spark-submit 明确设置这些东西,即 per App。这是所有运行时资源/集群环境的标准接口。事实上,Stand Alone 可以获得所有资源,除非你限制,也就是贪婪。

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2017-05-28
    • 1970-01-01
    • 2016-02-20
    • 2014-05-23
    相关资源
    最近更新 更多