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启动的个数也不会达到设置的值。
0112020-03-27
相似问题