一、spark任务调度知识点
1、Spark中的一些专业术语
1.1、任务相关
Application:用户写的应用程序(DriverProgram +ExecutorProgram)。
Job:一个action类算子触发的操作。
stage:一组任务,例如:map task。
task:(thread)在集群运行时,最小的执行单元。
1.2、资源相关
Mstaer:资源管理主节点。
Worker:资源管理从节点。
Executor:执行任务的进程。
ThreadPool:线程池(存在于Executor进程中)
2、RDD的依赖关系
2.1、窄依赖
父RDD与子RDD,partition之间的关系是一对一,这种依赖关系不会有shuffle(父RDD不知道有几个子RDD,但是子RDD一定知道他的父RDD)
2.2、宽依赖
父RDD与子RDD是一对多,一般都会导致shuffle。默认情况下,groupByKey返回的RDD的分区数与父RDD是一致的,如果再使用groupByKey的时候,传入一个int类型的值,此时返回的RDD的分区数就是这个值