【发布时间】:2016-10-13 16:30:38
【问题描述】:
我的 spark 集群中有一个具有 24 个内核和 124Gb 内存的节点。当我将 spark.executor.memory 字段设置为 80g 时,是否期望每个节点或每个核心能够使用 80g 的 ram?
【问题讨论】:
标签: apache-spark pyspark
我的 spark 集群中有一个具有 24 个内核和 124Gb 内存的节点。当我将 spark.executor.memory 字段设置为 80g 时,是否期望每个节点或每个核心能够使用 80g 的 ram?
【问题讨论】:
标签: apache-spark pyspark
它是 per executor,可以配置为具有多个核心。您可以指定以下相关设置:
您可以选择是制作每个执行器只有 1 个核心的小型执行器,还是制作一个单片执行器。通常,我发现最好去中间的某个地方。每个执行器拥有多个核心允许 spark 在核心之间共享内存以用于广播数据之类的事情,但是拥有一个巨大的执行器意味着任何核心中的崩溃都会杀死整个执行器中的所有任务。
您还需要确保为驱动程序和操作系统保留一些内核和 RAM。因此,对于实际设置,您希望执行程序内存类似于:
NUM_EXECUTORS = (desired_total_executor_cores / num_cores_per_executor) EXECUTOR_RAM = (desired_total_executor_ram / NUM_EXECUTORS)
【讨论】: