名词解释
Application:基于Spark的应用程序,包含了driver程序和 集群上的executor
DriverProgram:运行main函数并且新建SparkContext的程序
ClusterManager:在集群上获取资源的外部服务(例如 standalone,Mesos,Yarn )
WorkerNode:集群中任何可以运行应用用代码的节点 (Yarn的模式下是在nodemanager中运行的,standalone模式下是在workernode中运行的)
Executor:是在一个workernode上为某应用用启动的一个JVM进程,该进程负责运行任务,并且负责将数据存在内存或者磁盘上。每个应用用都有各自自独立的executors
Task:被送到某个executor上的执行单元
Job包含很多任务的并行计算的task,可以看做和Spark的action对应,每个action都会触发一个job任务
Stage一个Job会被拆分很多组任务,每组任务被称为Stage(就像MapReduce分map任务和reduce任务一样)
(每一个程序中都有一些job(看有几个操作算子),每一个job中有很多stage,stage是根据宽窄依赖划分的)
任务调度
task经过什么样的过程才会发送到executor中执行
1.将写好的代码给DAG的调度器
2.根据宽窄依赖切分stage(一组并行计算的task)
比如下面这个就是有四个并行的task
3.taskset中包含着一组task,再依次发送到executor中运行
4.运行完了,再返回,传入下一task
重试
executor执行失败了,会由TaskScheduler重试三次发送,三次都失败,说明TaskSet失败,会重试DAGScheduler,重试四次
资源调度
感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。