spark调优之 excutor-core和内存的合理配置
队列资源描述
这是yarn界面上的,我和同事们共同使用的队列资源,这个队列总共3T内存 750个cpu
友情提示:看Max Resources这一栏
不过经常会出现,前面几个任务在跑,后面几个任务排长队的现象。
这让我百思不得其解
于是我看了一下导致这种情况的罪魁祸首
这是同事的配置 两个训练的模型
230个cpu几乎打满,打爆了整个3T的队列
他的任务一直在低效率的跑,怪不得后面排起了长队!
资源设置测验
测验思路
使用相同的数据,相同的处理逻辑,相同的代码去处理同一件事情
测验1
我尝试了一下同事们的配置方法 对数据进行配置
模拟同事的shell脚本配置
DAG
效果
测验2
新的配置
DAG
效果
结论
由此可见 大量的配置内存配置有时候并不见得会有更好的效果,同事们这样进行配置,也不知道是否是在充分考虑shuffle和数据倾斜的前提之下进行的。但是单从效率方面来讲,一昧的添加内存资源不一定是有效果的。要尽量的达成cpu和内存的协调平衡。
在我的多次测验结果看来最平衡的状态是1:2,所以如果让我搭建集群我会尽量的将cpu和内存的配比平衡在1:2.5,或者1:3左右!
当使用的时候,尽量配比成1:2