首先会将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. 记一次Cloudera中页面监控失效问题

    因为做了cdh的迁移,启动后所有服务都是正常执行,不影响操作,但是尴尬的是,页面上的图表监控不见了 这种情况的根本原因就是: Host Monitor和Service Monitor服务失效! 解决: ...

  2. How to correctly set application badge value in iOS 8?

    o modify the badge under ios8 you have to ask for permissions let settings = UIUserNotificationSetti ...

  3. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  4. 在RestController中获取各种信息的方法

    内容 获取方法 URL中路径的一部分 首先需要在RequestMapping做映射, 之后在方法中可以通过注解使用映射的变量@GetMapping("/{id}")public S ...

  5. LeetCode 75. 颜色分类(Sort Colors)

    题目描述 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示红色.白色 ...

  6. Oracle 表空间扩容

    1 系统表空间扩容 注:表空间监测或扩容方式很多,这里只提供一种方便使用的方法 1)查询SQL 注:需要输入百分比,如:90,就可查出使用率超过90%的表空间, with t as (select b ...

  7. Oracle 11g的日志路径

    Oracle数据库的最常用问题定位日志是alert日志,Oracle数据库的日志文件alert_$ORACLE_SID.log记录了重作日志的转换,数据库启动和关闭,数据库结构的改变,回退段的修改,死 ...

  8. sentinel.conf样例

    #禁止用localhost与127.0.0.1# Example sentinel.conf # 哨兵sentinel实例运行的端口 默认26379port 26379 # 哨兵sentinel的工作 ...

  9. javascript之DOM总结

    DOM简介    全称Document Object Model,即文档对象模型.DOM描绘了一个层次化的树,允许开发人员添加.删除.修改页面的某一部分.    浏览器在解析HTML页面标记的时候,其 ...

  10. 简单说 JavaScript实现雪花飘落效果

    说明 这次实现的雪花飘落的效果很简单,主要是为了练习练习JavaScript中的定时器,setTimeout 和 setInterval. 效果图 解释setTimeout() setTimeout函 ...