Spark并行与资源分配的问题

来源:3-7 -SparkContext&SparkConf详解

慕粉2040365749

2020-03-26

讲师好,
我这边试了一下。分区数,executor num,cores。决定executor和并行数的规则。
executor的个数为三者中最小的那个。
若分区数最少,并行数为1*分区数。
否则,并行数为executor.cores *executor。
不知道这个总结是否正确?

图片描述

另外还有两个问题
1.当我的worknode 只有1个,为8Cores,且分区为24。我设置了executor num=4,executor.cores=3。Stage中看到12个并行,而且Executors显示的为12Cores。请问这个8cores是自己分为12份的吗。
图片描述
2.ambari 我看到的CPU占用率并不高。我向请问并行程序和CPU 占用率 之间的关系是什么?WorkerNode如下,不知道头节点的需不需要看。
图片描述

写回答

1回答

慕粉2040365749

提问者

2020-03-26

资源分配补充测试了一下。我使用6台  8cores 机器。代码分区24. executor=16,executor.cores=3。executor只出现了9个,分别的并行为2或3.

所以分区数不是executor*cores的倍数,则分配就不是很规律。如果都没有两倍,则executor启动的个数也不会达到设置的值。

0
11
慕粉2040365749
回复
Michael_PK
哦 是这样吗 我试试看 感谢感谢
2020-03-27
共11条回复

Python3实战Spark大数据分析及调度

使用Python3对Spark应用程序进行开发调优,掌握Azkaban任务调度

1046 学习 · 434 问题

查看课程