专栏首页简单聊聊SparkSpark内核分析之Worker原理分析

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性能调优篇四之使用Kryo进行序列化操作

            接着上一篇文章,今天介绍一下通过使用Kryo这个东东来进一步降低网络IO的传输量和内存的占用率。在介绍Kryo之前,接下来我们先来对比一下默认的...

    z小赵
  • Fluem的安装及使用

    1.下载flume1.6.0,下载地址:http://archive.apache.org/dist/flume/

    z小赵
  • Spark内核分析之Shuffle操作流程(非常重要)

            如题,我们来分析一下spark的shuffle操作原理;为什么说其非常重要,是因为shuffle操作是我们在Spark调优中非常重要的一环,对s...

    z小赵
  • 职场 | 程序员到底能不能干过30岁?

    程序员为什么高薪?从经济学上来说是因为稀缺性!但是现在世界上软件行业的从业者并不在少数,从这个角度来说,程序员并不稀缺,但换个角度,程序员这个行业的薪资差距却有...

    小莹莹
  • Thinking in DAX with PowerBI - 逻辑框架 - 数据结构

    在 PowerBI DAX 中,为了简化,数据结构只有一种表面形态:表。那当需要按照不同逻辑结构思考问题的时候,如何从表的结构形态衍生出其他结构形态?

    BI佐罗
  • Linux网络相关

    ifconfig命令在CentOS6是自带有的,但是在CentOS7默认是没有的,需要安装net-tools这个包。

    端碗吹水
  • PHP内存中的对象和引用简介

    我首次起草这篇文章是在备战我的PHP认证时,以便更好地了解PHP如何管理内存中的变量和对象。经过大量研究,我意识到找到我的问题的答案并不容易,所以一旦我完成了,...

    汐楓
  • 用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以...

    Python小二
  • Python 小白的第一次实践——将统计数据转成 Execl

    公司项目的广告展示率太低,需要查找原因,之前做了统计埋点,运维给出过滤后的数据,一个 txt 文件 500M 以上,文件打开非常乱。

    七适散人
  • 你买的EOS币会升值吗?全看这三个点给不给力了

    区块链大本营

扫码关注云+社区

领取腾讯云代金券