spark工作节点之Worker原理剖析

       这节我们讲讲Worker,Worker 计算资源的实际贡献者,他要向Master汇报自身拥有多少cpu core和memory, 在master的指示下负责启动executor,executor 是执行真正计算的苦力,由master来决定该进程拥有的core和memory数值,Master  掌管整个cluster的资源,主要是指cpu core和memory,但Master自身并不拥有这些资源,而Driver 是资源的实际占用者,Driver会提交一到多个job,每个job在拆分成多个task之后,会分发到各个executor真正的执行。

      下面让我们来看看master, worker, driver, executor 之间是怎么打交道:

spark工作节点之Worker原理剖析

       下面直接进入源码分析:

首先让我们从master开始看起:


spark工作节点之Worker原理剖析


master收到worker的注册信息后就会开始做出调度,进入schedule();


spark工作节点之Worker原理剖析

1.接下去看lauchDriver,会发现他向worker发送信息,要求worker启动driver进程,然后我们紧接着到Worker类中,发现在launchDriver方法中,worker会new driverRunner,并且start。


spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析


2.然后再看看startExecutorsOnWorkers方法,一步一步跟下去,--> allocateWorkerResourceToExecutors --> launchExecutor ,然后worker收到信息就开始new ExecutorRunner,然后start,最终会创建一个executor。

spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析

spark工作节点之Worker原理剖析

今天worker源码剖析就到这。


欢迎关注个人微信公众号:BigData共享

文章来自:

https://mp.weixin.qq.com/s?__biz=MzU2NzA3OTEwMg==&tempkey=OTUzX1p1UzNGTm5oQjBsd3czV1dTZkxBUUc1c2dzTUlDcW1fR1hLWk8yUnN3SXNxa1JLS25McnJTSkw4aXNyN0hkSktmM3UxbjNTX1Vjc0w4QmFQRUNYeVczeVVZZ0dfWldmMnBhS1dyNjVMZkEtN3ZsMjg5bEh2Mi1ES2lHSlJaWWRyNVhHWS1ZR1duZmU5T0J1b0lVa3REb2phRXZHeXVwRUxmdFBfcEF%2Bfg%3D%3D&chksm=7ca3f8be4bd471a877fb0db4c55fee3e6fbc9c614425c44d0d49f829055228499facc3cb7494#rd