Spark Client和Cluster两种运行模式的工作流程区别

1.client 模式: 在Client模式下,Driver进程会在当前客户端启动,客户端进程一直存在直到应用程序运行结束。

该模式下的工作流程图主要如下:

在这里插入图片描述

工作流程如下:

       1.启动master和worker . worker负责整个集群的资源管理,worker负责监控自己的cpu,内存信息并定时向master汇报

       2.在client中启动Driver进程,并向master注册

       3.master通过rpc与worker进行通信,通知worker启动一个或多个executor进程

       4.executor进程向Driver注册,告知Driver自身的信息,包括所在节点的host等

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

          进程中的task线程中执行

       6.应用程序执行完成,Driver进程退出

2.cluster模式:在cluster模式下,Driver进程将会在集群中的一个worker中启动,而且客户端进程在完成自己提交任务的职责后,就可以退出,而不用等到应用程序执行完毕。

该模式下的工作流程图如下:

在这里插入图片描述

工作流程如下:

        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注册自己。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值