spark运行逻辑

spark运行逻辑

1.架构

Master 做为整个集群的控制器复负责整个集群的正常运行
Worker 相当于计算节点,接收主节点命令与进行状态汇报。运行一个或多个Executor进程,相当于计算节点
Client 用户提交作业的客户端
Driver 负责控制一个应用的执行,运行Application的main函数和初始化SparkContext,Driver将Task和Task所依赖的file和jar(序列化后)传递给对应的Worker机器运行
Cluster Manager 在集群上获取资源的外部服务 (例如:Standalone、Mesos、Yarn)
Executor 运行在Worker上的Task执行器,Executor启动线程池运行task,并且负责将数据写入内存或是磁盘上,每个Application会申请各自的Executor执行任务
SparkContext 整个应用的上下文,控制程序的生命周期
RDD Spark的基本运算单元,一组RDD形成执行的有向无环图RDD Graph
DAGScheduler 根据Job构建基于Stage的DAG的工作流,并提交Stage给TaskScheduler
TaskScheduler 将task发给Executor执行
SparkEnv 线程级别的上下文,存储运行时的重要组件的引用

spark集群部署后在主节点和从节点分别启动Master进程和Worker进程,对整个集群进行控制。Excecutor /Task 每个程序自有,不同程序互相隔离,task多线程并行。集群对Spark透明,Spark只要能获取相关节点和进程。Driver 与Executor保持通信,协作处理。

2.运行逻辑

Client提交应用,Master找到一个Worker启动Driver,Driver向Master或是资源管理器申请资源,之后把任务转换成RDD有向无环图,再由DAGScheduler将RDD的有向无环图转换成stage的有向无环图提交给TaskScheduler,由TaskScheduler将task提交给Executor执行任务。任务的执行过程中其它组件在协同工作,确保程序正确运行

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值