首先会将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. 2019icpc南京网络赛 A 主席树

    题意 给一个\(n\times n\)的螺旋矩阵,给出其中的\(m\)个点的值分别为各个点上数字的数位之和,给出\(q\)个询问,每次询问从\((x1,y1)\)到\((x2,y2)\)的子矩阵的和. ...

  2. 深度学习笔记(十一)网络 Inception, Xception, MobileNet, ShuffeNet, ResNeXt, SqueezeNet, EfficientNet, MixConv

    1. Abstract 本文旨在简单介绍下各种轻量级网络,纳尼?!好吧,不限于轻量级 2. Introduction 2.1 Inception 在最初的版本 Inception/GoogleNet, ...

  3. [笔记]动态规划(dynamic programming)

    动态规划与分治方法都是通过组合子问题的解来求解原问题,区别在于:分治方法将问题划分为互不相交的子问题,递归求解子问题,再将它们的解组合起来,求出原问题的解.分治算法可能反复的求解某些公共子问题,从而使 ...

  4. Vue_(基础)商品管理-demo

    实现对商品的增加.删除.数量的修改功能 删除商品可选择直接删除当前商品.删除选中商品.删除所有商品 添加商品时会自动添加日期字段 商品的属性 goods : { id : '', name : '', ...

  5. $\LaTeX$数学公式大全10

    $10\ Array\ environment,examples$ $\left( \begin{array}{cc} 2\tau & 7\phi-frac5{12} \\ 3\psi &am ...

  6. Partial Dependence Plot

    Partial Dependence就是用来解释某个特征和目标值y的关系的,一般是通过画出Partial Dependence Plot(PDP)来体现. PDP是依赖于模型本身的,所以我们需要先训练 ...

  7. 20165213 Exp9 Web安全基础

    Exp9 Web安全基础 一.基础性问答 (1)SQL注入攻击原理,如何防御 原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾 ...

  8. LeetCode 23. 合并K个排序链表(Merge k Sorted Lists)

    题目描述 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2->6 ] 输出: ...

  9. HearthBuddy卡牌无法识别

    界面上无法识别,提示是 [Unidentified card ID :DAL_010][Unidentified card ID :DAL_415] Unidentified card ID :HER ...

  10. javascript之注册事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...