Spark中的Task,partitioner,executor,cores等相关概念

说明
- 输入多个hdfs文件,每个文件有多个block,当spark读取多个文件时,将多个block合并为一个输入分片(InputSplit,它是不能跨文件的),每个输入分片对应一个task,一个task会被分配到某个节点的一个executor上执行,每个executor上有多个cores(一个executor可拥有的最大core数是机器逻辑cpu的数量。),每个core一次执行一个task,执行的结果生成一个rdd的一个partition,partition是指逻辑上将数据分成几个片。
举例
- 配置的时候要考虑executor和cores的数量。比如rdd有100个partition,你设置了executor的数量为20,每个executor的cores设为10,那么一次就可以完成计算,还有100个core啥都没干,如果executor的数量为10,每个executor的cores设为10,一次就跑完了。

本文解析了Spark中Task、partitioner、executor和cores的概念及其相互作用。输入多个HDFS文件时,Spark如何将block合并成InputSplit,每个InputSplit对应一个Task,Task被分配到executor上的cores执行,并生成RDD的partition。

1162

被折叠的 条评论
为什么被折叠?



