Spark在yarn集群上运行

先上结论:
1、用户通过spark-submit脚本提交应用。
2、spark-submit脚本启动Driver,调用用户定义的main()函数,创建SparkContext。
3、Driver向RM申请运行资源
4、RM为驱动器程序启动Executor,Executor启动后向Driver反向注册自己
5、Driver将job切分成一个或多个stage,再将stage分成多个task,根据数据所在的位置将task分配给合适的Executor执行
6、在Executor执行的时,会将计算的中间结果数据存储在executor中,同时Driver会对这些存储的数据位置进行跟踪,利用这些存储的位置来调度之后的任务
7、当Driver结束后,Driver同时会终止executor,并通过RM进行资源回收。

这边首先介绍一下驱动器节点(Driver)
定义
驱动器节点(Driver):负责中央协调,调度各个分布式的执行器节点。
作用
1、把用户程序转为任务
程序从输入数据创建一系列RDD,在使用操作算子将RDD转换成新的RDD,最后使用行动算子收集或着存储结果RDD中的数据。驱动器在运行的时候,会将一个作业根据shuffle切分成一个或多个stage,然后在将stage分成一个或多个task。
2、为执行器调度任务
当集群管理器启动执行器后,执行器会向Driver反向注册自己,因此Driver会得到每个执行器的状态信息,Driver会将task根据数据所在的位置分配给合适的executor,executor在运行的时候,会将计算的中间数据存储下来,同时Driver会对这些数据进行跟踪,利用存储数据的位置调度之后的任务。

接下来介绍执行器(executor)
定义
执行器:负责在spark作业运行是执行任务。
作用
1、负责运行组成spark应用的任务,并将结果返回给驱动器进程
2、通过自身的管理块(block Manage)为用户程序保存计算的中间结果。
RDD是直接保存在executor中的,因此任务可以在运行时充分利用缓存数据加速运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值