Spark系列-核心概念
一. Spark核心概念html
- Master,也就是架构图中的Cluster Manager。Spark的Master和Workder节点分别Hadoop的NameNode和DataNode类似,是一种主从结构。Master是集群的领导者,负责协调和管理集群内的全部资源(接收调度和向WorkerNode发送指令)。从大类上来分Master分为local和cluster两大类
-
- local:也就是本地模式,全部计算都在一台服务器上完成,一般用于本地开发调试。思惟导图中
- local:表示启动一个线程,全部的计算都在这个线程中完成
- local[k]:启动k个worker线程
- local[*]:按照当前服务器的cpu核数来启动
- cluster:也就是集群模式,由多台服务器并行执行。
- standalone:spark自带的资源管理器
- mesos:由mesos来管理
- yarn:一般和MapReduce做业同样,资源共享,因此使用的最多。(yarn cluster:全部调度资源都在集群上运行,yarn client:出了spark driver和master进程,其他都在集群上)

- Worker,也就是WorkderNode,负责执行Master所发送的指令,来具体分配资源并执行任务
- Driver:一个Spark job运行前会启动一个Driver进程,也就是做业的主进程,负责解析和生成各个Stage,并调度Task到Executor上
- Executer:负责执行做业。如图中因此,Executer是分步在各个Worker Node上,接收来自Driver的命令并加载Task
- SparkContext:程序运行调度的核心,高层调度去DAGScheduler划分程序的每一个阶段,底层调度器TaskScheduler划分每一个阶段具体任务
- DAGScheduler:负责高层调度,划分stage并生产DAG有向无环图
- TaskScheduler:负责具体stage内部的底层调度,具体task的调度和容错
- Job:每次Action都会触发一次Job,一个Job可能包含一个或多个stage
- Stage:用来计算中间结果的Tasksets。分为ShuffleMapStage和ResultStage,出了最后一个Stage是ResultStage外,其余都是ShuffleMapStage。ShuffleMapStage会产生中间结果,是以文件的方式保存在集群当中,以便可以在不一样stage种重用
- Task:任务执行的工做单位,每一个Task会被发送到一个节点上,每一个Task对应RDD的一个partition.
- RDD:是以partition分片的不可变,Lazy级别数据集合
- 算子
- Transformation:由DAGScheduler划分到pipeline中,是Lazy级别的,不会触发任务的执行
- Action:会触发Job来执行pipeline中的运算
欢迎关注本站公众号,获取更多信息