1 并行度概念理解
并行度:并行度= partition= task总数。但是同一时刻能处理的task数量由并行计算任务决定(CPU cores决定)。
并行度(Parallelism)指的是分布式数据集被划分为多少份,从而用于分布式计算。换句话说,并行度的 出发点是数据(从数据的角度看),它明确了数据划分的粒度。并行度越高,数据的粒度越细,数据分片越 多,数据越分散。由此可见,像分区数量、分片数量、Partitions 这些概念都是并行度的 同义词。并行度本质上指的就是总分区数。也就是我们通常看到的spark.default.parallelism 和spark.sql.shuffle.partitions 这两个参数。这两个参数,spark.default.parallelism 是针对RDD设置的,spark.sql.shuffle.partitions 是针对数据框(df,ds)设置的。
并行计算任务(Paralleled Tasks)则不同,它指的是在任一时刻整个集群能够同时计算的任务数量(从资源的视角,受计算机集群资源制约)。换句话说,它的出发点是计算任务、是 CPU,由与 CPU 有关的三个参数共同决定。具体说来, Executor 中并行计算任务数的上限是 spark.executor.cores 与 spark.task.cpus
版权声明:本文为godlovedaniel原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。