Spark[二]——Spark的组件们[Application、Job、Stage、TaskSet、Task]
一、Application
就是用户编写的Spark应用程序,提交到Spark后,Spark为Application分配资源,将程序转换并执行;其中,一个Application包含多个Job;
二、Job
由Action算子触发生成的由一个或多个Stage组成的计算作业;
这些Action算子主要包括:reduce、collect、count、first、take、takeSample、takeOrdered、saveAsTextFile、saveAsSequenceFile、saveAsObject、countByKey;
三、Stage
调度阶段,一个taskSet对应的调度阶段,每个Job会根据RDD的宽依赖关系被切分为Stage,每个Stage都包含一个taskSet;
导致Shuffle的算子:repartition, repartitionAndSortWithinPartitions, coalesce, reduceByKey, groupByKey, sortByKey, join, cogroup等。这些算子主要分为三类:
- 1.重分区:一般情况下重分区都会导致Shuffle,须在整个集群中对之前所有的分区数据进行随机、均匀的打乱,然后放入下