spark的excutor调优思路

Spark Executor 的调优涉及内存和CPU核心数的平衡。首先确保程序在最小Executor资源下运行,然后增加Executor数量,同时调整每个Executor的核心数。在资源共享的环境下,增加核心数可能需要增加内存,需找到多进程与多线程之间的折中策略。官网建议每个Executor分配10到20个任务,避免因增大CPU核心数导致内存不足。
摘要由CSDN通过智能技术生成

spark的excutor调优主要考虑两种资源:内存和cpu核心数

优先保证程序可运行的情况下增加excutor数量

在spark中,一个excutor是一个进程,是内存资源分配的基本单位。理论上excutor的数量可以非常大,但是yarn有资源管理的功能,如果excutor占用的资源超过了集群拥有的资源,多余的进程会被挂起。所以第一原则是单个excutor分配的资源要满足程序运行要求的情况下尽量的小,excutor的数量尽量多。

在满足程序可正确运行的基础上,提高并行数。也是就每个excutor的核心数

如果excutor是一个进程的话,那excutor的核心就是该线程的进程了。同一个线程的进程是共享资源的。

折中策略

我们说多个核心是共享内存的,也就意味着,如果我们增加每个excutor的核心数,我们就要增加excutor的内存大小,那excutor的数量就该减少。那我们是该以多进程(多 excutor)为主呢,还是以多线程(多核心)为主呢。

有一个简单的excutor的内存估算策略:

Executor所需最小内存 
=  并发任务数 * 单分区大小 + 内存缓存分区数 * 单分区大小 
= 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值