首先会将jar包上传到机器(服务器上)
    1.在这台机器上会产生一个Application(也就是自己的spark程序)
    2.然后通过spark-submit(shell) 提交程序的时候
        2.1会启动一个driver(进程):spark-submit使用我们之前一直使用的那种提交模式去提交的时候,我们之前的提交模式,叫做Standalone,其实会通过反射的方式,创建和构造一个DriverActor进程出来
        driver进程会执行我们的Application应用程序(也就是我们自己编写的代码)
            我们在编写的所有spark应用程序的第一行:都是下构造sparkconf和SparkContext
            2.1.1SparkContext:在初始化的时候,做的最重要的两件事就是构造出来DAGSchedulerTaskScheduler        
                2.1.1.2DAGScheduler
                        2.1.1.2.1然后开始继续执行我们自己编写的代码。
                            每当执行到一个action算子就会生成一个job并且把这个job提交给DAGScheduler
                        2.1.1.2.2而此时DAGScheduler会将job划分为多个stage,然后每个stage创建一个Taskset
                        2.1.1.2.3并且会把Taskset提交到 TaskScheduler上
                        2.1.1.2.4而TaskScheduler会把Taskset里的每一个task提交到Executor上
                        2.1.1.2.5此时的Executor中会有一个线程池。 当Executor每接收到一个task时,都会用TaskRunner来封装task,然后从线程池里取出一个线程,执行这个task
TaskRunner:会将我们编写的代码,也就是执行的算子以及函数,拷贝、反序列化,然后执行task
Task有两种:ShuffleMapTask和ResultTask只有最后一个stage是ResultTask,之前的所有stage都是ShuffleMapTask。
 
所以最后整个spark应用程序的执行,就是stage分批次作为taskset提交到Executor执行,每个task针对RDD的一个partition,并行的执行我们定义的算子和函数。以此类推知道所有操作执行完成为止
 
                2.1.1.1TaskScheduler(有自己的后台进程)
                    TaskScheduler实际上,会负责通过它对应的一个后台进程,去连接Master
                    然后向Master注册Application
                2.1.1.1.1Master
                    当master接收到注册的Application时,会使用自己的资源调度算法,在spark集群的worker上,为这个application启动多个Executor
                2.1.1.1.2Worker
                    而此时Worker会为Application启动Executor(进程)
                2.1.1.1.3Executor
                    而当executor启动之后,会自己反向注册到TaskScheduler上去
                    当所有的Executor都反向注册到Driver上之后,Driver结束SparkContext初始化,
            
                            
 
 
 
 
 
 

小记--------spark内核架构原理分析的更多相关文章

  1. 小记--------spark的worker原理分析及源码分析

     

  2. springMVC课程笔记(一)springMVC架构原理分析

    一.springMVC架构原理分析 1.先搞清楚什么是springMVC: 其实springMVC是spring框架中的一个模块,springMVC和spring无需通过中间整合层整合,SpringM ...

  3. Spark之Task原理分析

    在Spark中,一个应用程序要想被执行,肯定要经过以下的步骤:          从这个路线得知,最终一个job是依赖于分布在集群不同节点中的task,通过并行或者并发的运行来完成真正的工作.由此可见 ...

  4. 11、spark内核架构剖析与宽窄依赖

    一.内核剖析 1.内核模块 1.Application 2.spark-submit 3.Driver 4.SparkContext 5.Master 6.Worker 7.Executor 8.Jo ...

  5. 01、Spar内核架构原理

        附件列表

  6. Spark- Spark内核架构原理和Spark架构深度剖析

    Spark内核架构原理 1.Driver 选spark节点之一,提交我们编写的spark程序,开启一个Driver进程,执行我们的Application应用程序,也就是我们自己编写的代码.Driver ...

  7. 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点

    大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...

  8. Spark运行时的内核架构以及架构思考

    一: Spark内核架构 1,Drive是运行程序的时候有main方法,并且会创建SparkContext对象,是程序运行调度的中心,向Master注册程序,然后Master分配资源. 应用程序: A ...

  9. (升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

    本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课 ...

随机推荐

  1. fhq Treap(无旋Treap)

    先吹一波fhq dalao,竟然和我一个姓,我真是给他丢脸. 昨天treap就搞了一下午,感觉自己弱爆了.然后今天上午又看了一个上午的无旋treap再次懵逼,我太弱了,orzorz. 所以写个博客防止 ...

  2. CentOS7 安装JumpServer

    环境: CentOS Linux release 7.6.1810 (Core) JumpServer 1.4.8 Python 3.6.X MariaDB 编译安装Python3.6 首先,下载Py ...

  3. R-三次指数平滑法实践

    data <- read.csv("H://day_shuaka.csv") raw0 <- data[359:752,] raw0$weekday <- as. ...

  4. JAVA开发框架

    1.Bootstrap     Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍 ...

  5. Java项目框架搭建系列(Java学习路线)

    前言: 已经工作4年,真是时间飞逝. 其实当你在一间公司工作一两年之后,公司用到的开发框架的基本使用你应该都会了. 你会根据一个现有项目A复制一下搭建出另外一个类似框架的项目B,然后在项目B上进行业务 ...

  6. (转载)深入理解Java:内省(Introspector)

    本文转载自:https://www.cnblogs.com/peida/archive/2013/06/03/3090842.html 一些概念: 内省(Introspector) 是Java 语言对 ...

  7. java获取来访者mac信息

    根据IP获取对应的Mac地址,支持win10+Linux package com.simonjia.util.other; /** * @Author: SimonHu * @Date: 2019/6 ...

  8. Python中异常和JSON读写数据

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  9. spring boot知识清单

    https://mp.weixin.qq.com/s/q8OI2Ou8-gYP-usjToBbkQ

  10. 发布nuget包

    首先在nuget(www.nuget.org)注册账号,这里可以使用微软账号直接登录 一般有两种方式 1:在工程上右键打包然后直接在网站上上传就可以 2:通过获取key,然后使用控制台提交 登录后在右 ...