提交Spark程序时,资源调优是必须的,否则会默认运行2个executor,每个executor内存1G。这里主要针对资源利用做个总结。
主要涉及
--num-executors
--executor-memory
--executor-cores
--conf spark.default.parallelism
服务器节点YARN可用资源
服务器 | 单节点cores | 总cores | 单节点内存 | 总内存 |
3台 | 29 | 87 | 18G | 54G |
提交任务时遇到的一个小问题
提交Spark时,发现无论怎么设置executor数都是2个,排查后才发现,CDH上设置了yarn.scheduler.minimum-allocation-mb的值为8G,也就是YARN的作业最小调度资源。节点上YARN可用内存为18G,所以最多只能开启2个Container,也就是2个executor,剩下的内存足够开启一个AM的Container,所以最后Container为3个,executor只有2个。
注意点
1. Sp