1. Spark 程序在运行的时候分为 Driver 和 Executor 两部分;

2. Spark 的程序编写是基于 SparkContext 的,具体来说包含两方面:

a)    Spark 编程的核心基础 RDD, 是由 SparkContext 来最初创建

b)   Spark 程序的调度优化也是基于 SparkContext

3. Spark 程序的注册是通过 SparkContext 实例化时候生成的对象来完成的(其实是 SchedulerBackend 来注册程序的)

4. Spark 程序运行的时候要通过 ClusterManager  获得具体的计算资源,计算资源的获取也是通过 SparkContext  产生的对象来申请的(其实是 SchedulerBackend 来获取计算资源的)。

5. SparkContext 崩溃或者结束的是候整个 Spark 程序也结束了。

6. SparkContext 构建的项级三大核心对象:DAGScheduler 、TaskScheduler、SchedulerBackend。其中:

a)    DAGScheduler 是面向 Job 的 Stage 的高层调度器

b)   TaskScheduler 是一个接口,根据具体地 Cluster Manager 的不同会有不同的实现,Standalone 模式下具体的实现是 TaskSchedulerImpl ;

c)    SchedulerBacken 是一个接口;根据具体的 Cluster Manager 的不同会有不同的实现,Standalone 模式下具体的实现是 SparkDeploySchedulerBackend (它是被TaskSchedulerImpl 管理的); 其核心功能是:

(1)负责与 Master 链接注册当前程序;

(2)接收集群中为当前应用程序而分配的计算资源 Executor 的注册并管理 Executors;

(3)负责发送 Task 到具体的 Executor 执行。

从整个程序运行的角度来讲,SparkContext 包含四大核心对象:DAGScheduler 、TaskScheduler、SchedulerBackend、MapOutputTrackerMaster

大体的流程:

最新文章

  1. 【转】iOS夯实:ARC时代的内存管理
  2. android 项目中如何引入第三方jar包
  3. angularjs $broadcast 和 $on 的使用及其注意事项
  4. CMFCPropertyGridProperty SetValue 出错处理
  5. UE4高级功能--初探超大无缝地图的实现LevelStream
  6. JavaScript模块化开发一瞥
  7. MySQL中,把varchar类型转为date类型
  8. [ZZ]C++中,引用和指针的区别
  9. Learn LIBSVM---a practical Guide to SVM classification
  10. ubuntu12.04下 安装虚拟主机
  11. 慎得慌风 656ik67o
  12. Android App监听软键盘按键的三种方式(转)
  13. 前端工作日常爬坑之——单页面微信开发Jssdk相关,以及jssdk图片直传自己服务器的实现。
  14. 纽约工作日志流水账 Day 2
  15. 博客Hexo + github pages + 阿里云绑定域名搭建个人博客
  16. unittest单元测试框架中的参数化及每个用例的注释
  17. 随机x到x之间的值
  18. Vue下拉刷新组件
  19. 安装设置IIS5.1
  20. 转:.NET中的三种Timer的区别和用法(转)

热门文章

  1. git忽略文件和目录
  2. C#--父子页面传值、刷新(showModalDialog)
  3. fflush(stdin)的对错?
  4. 【leetcode刷题笔记】Flatten Binary Tree to Linked List
  5. Java Modifiers
  6. 【LeetCode】013. Roman to Integer
  7. 浅谈vue路由原理
  8. POJ3087(模拟)
  9. POJ3468(树状数组区间维护)
  10. C#中DataTable用法