首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >增加Spark workers内核

增加Spark workers内核
EN

Stack Overflow用户
提问于 2019-12-05 19:14:22
回答 1查看 648关注 0票数 2

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

亲切地,我怎样才能增加每个工人工作的8个核心的核心数量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-05 20:02:56

控制每个执行器的核心的设置是spark.executor.cores。参见doc。它可以通过spark-submit命令参数或在spark-defaults.conf中设置。该文件通常位于/etc/spark/conf (ymmv)。YOu可以使用find / -type f -name spark-defaults.conf搜索conf文件

代码语言:javascript
复制
spark.executor.cores 8

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

如果您在dataframe或rdd上调度任务,spark将为dataframe的每个分区运行并行任务。一个任务将被调度给一个执行器(独立的jvm),执行器可以在每个核心上的JVM线程中并行运行多个任务。

此外,exeucutor不一定在单独的worker上运行。如果有足够的内存,两个执行器可以共享一个工作节点。

为了使用所有内核,在您的情况下设置可能如下所示:

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

代码语言:javascript
复制
spark.default.parallelism 14
spark.executor.instances 2
spark.executor.cores 7
spark.executor.memory 9g

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

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

https://stackoverflow.com/questions/59193893

复制
相关文章

相似问题

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