首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache火花:核心与执行者

Apache火花:核心与执行者
EN

Stack Overflow用户
提问于 2019-06-26 09:09:48
回答 2查看 1.9K关注 0票数 1

与核心和执行者相关的问题被问了很多次。

Apache Spark: The number of cores vs. the number of executors

因为每个案例都不一样,我又问了一个类似的问题。

我正在运行一个cpu密集型应用程序,具有相同数量的不同执行器的核心。以下是观察结果。

资源管理器: Kubernetes

案例1:执行器- 6,每个执行器的核心数目-2,执行器内存- 3g,数据处理量~10 of,分区-36,作业持续时间:75分钟

案例2:执行器- 4,每个执行器的核心数目-3,执行器内存- 3g,数据处理量~10 of,分区-36,作业持续时间:101分钟

根据上面的链接,每个执行器少于5个内核的任何内容都有利于IO操作。

在我的两种情况下,核心都是相同的(12),但是这两项工作所用的时间不同。有什么想法吗?

更新的

案例3:执行器- 12,每个执行器的核心数目-1,执行器内存- 3g,数据处理量~10 81,分区-36,作业持续时间:81分钟

EN

回答 2

Stack Overflow用户

发布于 2019-06-26 12:48:09

有很多可能的解决方案,首先,并不是所有的节点生来都是平等的,它可能是一个工作变得不走运,得到一个缓慢的节点。如果您执行洗牌操作,有更多的节点,但相同的计算能力将真正减缓您的工作速度。毕竟,在洗牌操作中,您的所有信息最终都将存储在单个节点上。让这个节点有更少的数据和更少的电源将减慢操作速度。但我怀疑,即使没有洗牌操作,更多的节点也会慢一些,因为单个节点从其他节点获得更多工作的可能性更高。

解释:

假设我有一个节点、10个小时的工作和10个核心,所以我知道这需要1小时,但是如果我有2个节点,每个节点有5个核,那么假设数据集是以一种方式划分的,一个节点有5.5小时的工作,其他的4.5个小时,作业长度将是1.1小时。

分布式计算总是要付出一定的开销。因此,在一台机器上使用相同的资源通常更快。

希望我想说的都清楚了。

票数 1
EN

Stack Overflow用户

发布于 2019-06-26 21:42:12

在第一种情况下,您确实有50%的内存可以使用(3g*6=18g),而锁定问题则更少(2个内核/执行器,而不是3个)。尝试使用1核/执行器进行动态分配,看看会发生什么

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56769146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档