spark-role

Spark角色

角色名称 解释
Master 常驻master守护进程,负责管理worker节点,从master节点提交应用
Worker 常驻worker守护进程,与master节点通信,并且管理executor进程,运行一个或多个Executor进程,相当于计算节点
Client 用户提交作业的客户端
Driver 负责控制一个应用的执行,运行Application的main函数和初始化SparkContext,Driver将Task和Task所依赖的file和jar(序列化后)传递给对应的Worker机器执行
Executor executor进程宿主在worker节点上,一个worker可以有多个executor,每个executor持有一个线程池,每个线程可以执行一个task,executor执行完task以后将结果返回driver,每个executor执行的task都属于同一个应用。此外executor还有一个功能就是为应用程序中要求缓存的RDD提供内存式存储,RDD是直接缓存在executor进程内的,因此任务可以运行时充分利用缓存加速运算。一个container对应一个JVM进程(也就是一个executor)
Job action的触发会生成一个job,job会提交给DAGScheduler,分解成Stage
Stage DAGscheduler根据shuffle将job划分为不同的stage,同一个stage包含多个task,这些task有相同shuffle dependencies
Task 被送到executor上的工作单元,task简单来说就是在一个数据partition上单个数据处理流程
Cluster Manager 在集群上获取资源的外部服务(例如:Standalone、Mesos、Yarn)
SparkContext 整个应用的上下文,控制程序的生命周期
DAGScheduler 根据Job构建基于Stage的DAG工作流,并提交Stage给TaskScheduler
TaskScheduler 将task发给Executor执行
SparkEnv 线程级别的上下文,存储运行时的重要组件的引用

sparkonyarn