spark在yarn上的二种运行模式和Spark StandAlone模式

RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

1:spark的StandAlone模式

1.1 spark的client模式

特点:spark的client模式的特点是Driver端在SparkSubmit里

1:启动Master,master负责集群资源管理 ,worker负责监控自己的cpu,内存消息向master汇报

2:在client中启动Driver进程,向master进行注册,提交任务

3:master通过RPC与worker进行通信,查询可用的worker启动executor进程

4:启动的executor向Driver进行反向注册,告知自己的信息和host

5:在Driver对job进行SparkContext 创建RDD ,划分stage.将task封装到taskset中发送给executor

6:executor执行完成,Driver进程退出

 

一个Applicattion有一到多个job,一个job对应一个DAG,1个job中有多个Stage,一个Stage中对应一个TaskSet,一个Stage有多个Task

Task分为ShuffleMapTask和 ResultTask ,ShuffleMapTask读取各种数据源读取数据,也可以读取shuffle后的数据,是专门为shuffle做准备的,ResultTask是专门计算结果的.

 

2:Spark的cluster模式

特点:Driver运行在集群中,不在SparkSubmit进程中,需要将jar包上传到hdfs

 

1.在集群的节点中,启动master , worker进程,worker进程启动成功后,会向Master进行注册。

2.客户端提交任务后,ActorSelection(master的actor引用),然后通过ActorSelection给Master发送注册Driver请求(RequestSubmitDriver)

3.客户端提交任务后,master通知worker节点启动driver进程。(worker的选择是随意的,只要worker有足够的资源即可)driver进程启动成功后,将向Master返回注册成功信息

4.master通知worker启动executor进程

5.启动成功后的executor进程向driver进行注册

6.Driver对job进行划分stage,并对stage进行更进一步的划分,将一条pipeline中的所有操作封装成一个task,并发送到向自己注册的executor进程中的task线程中执行

7.所有task执行完毕后,程序结束。

 

Mater负责整个集群的资源的管理和创建worker,worker负责当前结点的资源的管理,并会将当前的cpu,内存等信息定时告知master,并且负责创建Executor进程(也就是最小额资源分配单位),
Driver负责整个应用任务的job的划分和stage的切割以及task的切割和优化,并负责把task分发到worker对应的节点的executor进程中的task线程中执行, 并获取task的执行结果,
Driver通过SparkContext对象与spark集群获取联系,得到master主机host,就可以通过rpc向master注册自己。

 

3:Spark在YARN上运行Cluster模式

特点:Driver是运行在NodeManager中

1:Client向ResourceManager进行注册,ResourceManager返回Application ID

2:client上传spark jar包,和配置信息到HDFS中

3ResourceManager找到资源充足的NodeManager(内存,核数)

4通过RPC通信让NodeManager从HDFS上下载jar包和配置信息,启动ApplicationMaster

5:ApplicationMaster向ResourceManager申请资源

6:ResourceManager向ApplicationMaster返回其他资源充足的NodeManager

7:ApplicationMaster向其他的NodeManager进行通信

8:NodeManager从HDFS下载spark jar包和配置信息

9:NodeManager启动executor

10:executor启动后向ApplicationMaster(Driver)进行反向注册

 

4:Spark on YARN的client模式

 

 

 

在Spark on yarn的client中占用corse

我们可以设定corse和memory,但是corse中有Applicationmaster会占用一个corse

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值