Spark内核分析之Worker原理分析

        接着上篇的Schedule调度内容,本篇我们来看看Driver,Application向Worker发送launch以后到底发生了什么。先来看看下面这张图;

Worker启动进程原理图

我们来简单分析一下这张图的运行原理;

1.首先,Master向Worker发送一个launchDriver的请求,Worker接收到请求后创建出一个DriverRunner对象;

2.然后紧接着利用创建的DriverRunner对象调用其start()方法,启动一个线程;

3.在该线程内部,首先创建了一个本地目录,然后拷贝我们要运行的Jar文件到本地,接着创建出一个ProcessBuilder对象出来;

4.最后利用ProcessBuilder对象启动Driver进程;

5.当Driver进程启动完成之后,向当前启动DriverRunner线程的Worker节点发送一个Driver启动的状态;

6.当前Worker在向Master发送Driver的启动情况,并清理相关内存信息,到此我们的Driver启动就完成了;

7.关于Application的启动过程,与Driver的启动基本一致,只有最后一步不同,当Executor启动完成向Worker发送状态改变信息,然后将其向Driver进行注册;

分析完上面的基本原理之后,我们先来看看Driver启动的源码是如何实现的;

worker启动Driver

在DriverRunner线程中启动Driver进程

启动完成,发送状态改变信息

以上即为Driver的整个启动过程,下面我们来看看Application的启动过程源码实现;

启动Executor

通过ProcessBuilder启动Executor进程

发送状态改变信息

总结:以上就是我们的Worker启动Driver,Application的整个过程;到这里,我们已经了解到整个Spark启动初始化的过程,接下来的内容我们来正式分析我们的Spark作业的运行流程是什么样子,包括DAGScheduler的调度,TaskScheduler中的TaskSet的任务分配算法的具体实现;欢迎关注。

如需转载,请注明:

上一篇:Spark内核分析之Scheduler资源调度机制

本篇:Spark内核分析之Worker原理分析

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏写代码的海盗

spark的若干问题

问题1:SPARK与HADOOP之间的关系?   spark是一种高效处理hadoop分布式数据的处理引擎。借助hadoop的yarn框架,spark就可以运行...

31060
来自专栏小狼的世界

Gearman的问题分析与深入研究

Gearman作为一个优秀的分布式解决方案,已经被众多的公司或者团队所采用,我在之前的一篇文章中也有过介绍。但是目前对于woker的执行状态和结果监控,特别是放...

12520
来自专栏北京马哥教育

Linux 线程浅析

关于linux线程 在许多经典的操作系统教科书中, 总是把进程定义为程序的执行实例, 它并不执行什么, 只是维护应用程序所需的各种资源. 而线程则是真正的执行实...

58470
来自专栏散尽浮华

Centos6.9下RabbitMQ集群部署记录

之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,...

67260
来自专栏武军超python专栏

2018年8月1日学习linux中的vi编辑器和多python环境的管理软件Anaconda,miniconda的使用

********************** 今天遇到的新单词: fail  n/v失败 file  n文件 extract v提取 verify...

28220
来自专栏烂笔头

Python爬虫代理IP池

目录[-] 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速...

88860
来自专栏LIN_ZONE

Linux各目录及每个目录的详细介绍(转载)

Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:

15020
来自专栏云计算教程系列

如何在Ubuntu 14.04上备份,还原和迁移MongoDB数据库

MongoDB是最受欢迎的NoSQL数据库引擎之一。它以可扩展,强大,可靠和易于使用而闻名。在本文中,我们将向您展示如何备份,还原和迁移MongoDB数据库。

16840
来自专栏FreeBuf

剪贴板劫持:复制粘贴中暗藏杀机

现在浏览器大多只允许开发者在一定条件下向用户剪贴板中添加内容。换句话说,剪贴板劫持只能是在浏览器事件中才能够触发。本文将详细的向各位讲述“剪贴板劫持”攻击如何诱...

26060
来自专栏小狼的世界

Mac下遇到 'reading initial communication packet’ 问题

今天在开发过程中,一个单位跑的好好的项目,在家中的Mac下运行时,遇到了下面这个错误:

19920

扫码关注云+社区

领取腾讯云代金券