gpt4 book ai didi

apache-spark - "one Executor per Core vs one Executor with multiple Core"的区别

转载 作者:行者123 更新时间:2023-12-04 05:27:05 28 4
gpt4 key购买 nike

我们知道每个任务当时都在一个核心中执行。
假设我们有这样配置的节点集群:

10 节点。
每个节点 16 个核心。
每个节点 64 GB 内存。

我的问题是 有 1 个 16 核的执行程序和 16 个 16 核的执行程序有什么区别???

我的意思是:enter image description here
VS
enter image description here

我从这个来源得到启发:
https://spoddutur.github.io/spark-notes/distribution_of_executors_cores_and_memory_for_spark_application.html?fbclid=IwAR3xiFLBXBkwX2SrcJFZU0tfHU7Gssp-NJstfLDSRSRZzJgK6ybvJjSVcpY

预先感谢

最佳答案

我想添加到@dassum 的答案中。还有一些事情需要考虑。

“1 个 16 核执行器”案例:

如果这些内核上的其中一个任务运行 OOM 或以糟糕的方式崩溃,则需要重新处理多达 16 个任务(及其祖先)(而只有 1 个)。

“16 个执行器,每个执行器有 1 个核心”案例:

内存数据缓存 ( persist() ) 由每个执行程序完成。因此,对于设置的可用 RAM 总量,这意味着最多只能将 1/16 的内存分配给每个单独的执行程序,并且大分区可能无法缓存在内存中,从而对处理速度产生负面影响。此外,其中一个执行者更有可能运行 OOM,因为
运行每个 JVM 实例都会产生相关的开销,因此即使每个执行程序的这 1/16 的潜在可用 RAM 中的一小部分也可以使用。
此外,执行者通常不会在它们之间共享内存。因此,如果一个 executor 使用的内存没有另一个 executor 多,那么内存就无法分配给具有更高内存需求的 executor。 IE。内存分配效率较低。除非 spark.memory.offHeap.enabled 设置为 true(默认设置为 false)。

关于apache-spark - "one Executor per Core vs one Executor with multiple Core"的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875141/

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