gpt4 book ai didi

apache-spark - 如何在独立集群模式下为每个工作人员分配更多的执行程序?

转载 作者:行者123 更新时间:2023-12-04 00:06:33 25 4
gpt4 key购买 nike

我在 5 个工作节点的集群中使用 Spark 1.3.0,每个节点有 36 个内核和 58GB 内存。我想为每个工作人员配置多个执行程序的 Spark 独立集群。

我见过合并的SPARK-1706 ,但是目前还不清楚如何实际配置多个执行程序。

这是集群的最新配置:

spark.executor.cores = "15"
spark.executor.instances = "10"
spark.executor.memory = "10g"

这些设置是在 SparkContext 上设置的当 Spark 应用程序提交到集群时。

最佳答案

您首先需要配置您的 Spark 独立集群,然后设置您要运行的每个单独的 Spark 应用程序所需的资源量。

为了配置集群,你可以试试这个:

  • conf/spark-env.sh :
  • 设置 SPARK_WORKER_INSTANCES = 10它决定了每个节点的 Worker 实例 (#Executors) 数量(其默认值仅为 1)
  • 设置 SPARK_WORKER_CORES = 15 # 一个 Worker 可以使用的核心数(默认:所有核心,你的情况是 36)
  • 套装SPARK_WORKER_MEMORY = 55g # 一台机器(工作节点)上可用于运行 Spark 程序的内存总量。
  • 将此配置文件复制到所有工作节点,位于同一文件夹
  • 通过运行 sbin 中的脚本启动集群( sbin/start-all.sh , ...)

  • 由于您有 5 个工作人员,因此通过上述配置,您应该在 master 的 Web 界面上看到 5 (workers) * 10 (executors per worker) = 50 个活着的执行程序(默认为 http://localhost:8080)

    当您以独立模式运行应用程序时,默认情况下,它将获取集群中所有可用的 Executor。您需要明确设置运行此应用程序的资源量:
    例如:
    val conf = new SparkConf()
    .setMaster(...)
    .setAppName(...)
    .set("spark.executor.memory", "2g")
    .set("spark.cores.max", "10")

    关于apache-spark - 如何在独立集群模式下为每个工作人员分配更多的执行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955133/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com