spark前置知识总结:
1.spark专业术语:
关于任务
application:
用户写的应用程序(由两部分组成: Driver program + Execuotr program)
Job:
一个action类算子触发执行的操作,有多少个action类算子就有多少个job
stage:
一组任务, map task 一组任务(task) 就是一个stage
task:
(thread) 在集群运行时最小的执行单元
关于资源集群:
Master:
资源管理的主节点
Worker:
资源管理的从节点
Excutor:
执行任务的进程
ThreadPool:
线程池,存在于Executor进程中
2.RDD的依赖关系: 窄依赖+宽依赖
1.窄依赖:
父RDD与子RDD,patition之间的关系为一对一,那么父子RDD的依赖关系为窄依赖,无shuffle操作
(shuffle: 数据的规整,根据所使用的方法进行规整
partition:一份待处理的原始数据会被按照相应的逻辑(例如jdbc和hdfs的split逻辑)切分成n份,每份数据对应到RDD中的一个Partition,Partition的数量决定了task的数量,影响着程序的并行度)
2.宽依赖:
关系:
一个application 有多个job组成,job的个数跟action类算子个数相关, 一个job由多个stage组成,具体个数由RDD宽窄依赖决定,一个stage由一组task组成
3.宽窄依赖的作用:为了将一个个的job切成一个个的stage同一个stage中,均为窄依赖,不同stage之间均未宽依赖