繁体   English   中英

增加 Spark 工人核心

[英]Increase the Spark workers cores

我已经在 master 和 2 个 worker 上安装了 Spark。 每个工人的原始核心数是 8。当我启动主时,工人正常工作没有任何问题,但问题是在 Spark GUI 中,每个工人只分配了 2 个核心。

请问,我怎样才能增加每个工人使用 8 个核心工作的核心数量?

控制每个执行程序内核的设置是spark.executor.cores 文档 它可以通过spark-submit cmd 参数或在spark-defaults.conf 该文件通常位于/etc/spark/conf (ymmv)。 您可以使用find / -type f -name spark-defaults.conf搜索 conf 文件

spark.executor.cores 8

但是,该设置并不能保证每个 executor 将始终获得所有可用的内核。 这取决于您的工作量。

如果您在数据帧或 rdd 上安排任务,spark 将为数据帧的每个分区运行一个并行任务。 一个任务将被调度到一个执行器(单独的 jvm),执行器可以在每个内核上的 jvm 线程中并行运行多个任务。

此外,执行者不一定会在单独的工作人员上运行。 如果内存足够,2个executor可以共享一个worker节点。

为了使用所有核心,您的案例中的设置可能如下所示:

假设您在每个节点上有 10 gig 的内存

spark.default.parallelism 14
spark.executor.instances 2
spark.executor.cores 7
spark.executor.memory 9g

将内存设置为 9g 将确保每个 executor 被分配到一个单独的节点。 每个执行器将有 7 个可用内核。 每个数据帧操作将被调度到 14 个并发任务,这些任务将被分配给每个执行器 x 7。 您还可以重新分区数据帧,而不是设置default.parallelism 一个核心和 1gig 的内存留给操作系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM