前言:

Spark Application的运行架构由两部分组成:driver program(SparkContext)和executor。Spark Application一般都是在集群中运行,比如Spark Standalone,YARN,mesos,这些集群给spark Application提供了计算资源和这些资源管理,这些资源既可以给executor运行,也可以给driver program运行。根据Spark Application的driver program是否在资源集群中运行,Spark

Application的运行方式又可以分为Cluster模式和client模式。spark1.0.0提供了一个Spark Application的部署工具bin/spark-submit。

1.1基本术语

关于Application中的几个概念如下图所示:

    Application:基于Spark的用户程序,包含了一个driver program和集群中多个的

executor

    Driver progaram:运行Application的main()函数并且创建SparkContext,通常用SparkContext代表Driver Program。

    Cluster Manager:在集群上获取资源的外部服务(例如:Standalone,Mesos,Yarn)

Worker Node:集群中任何可以运行Application代码的节点

    Executor:是为某Application运行在worker node上的一个进程,该进程负责运行

Task,并且负责将数据存在内存或者磁盘上。每个Application都有个字独立的executors。

Task: 被送到某个executor上的工作单元

Job: 包含多个Task组成的并行计算,往往由Spark action催生,该术语可以经常在日志中看到。

Stage:
每个Job会被拆分很多组task,每组任务被称为Stage,也可称TaskSet,该术语可以经常在日志中看到。

RDD:Spark的基本计算单元,可以通过一系列算子进行操作(主要有Transformation和Action操作),详情见RDD
细解、Spark1.0.0编程模型。

DAG Scheduler:根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler,详见DAG
Scheduler 细解。

TaskScheduler:将Taskset提交给worker(集群)运行并回报结果,详见TaskScheduler
细解。
1.2Spark运行模式概述

Spark运行模式多种多样,在单机上可以以本地模式运行,也可以以伪分布式模式运行。

而当以分布式的方式在cluster集群中运行时,底层的资源管理器可以使用Spark自带的standalone模式,也可以使用Yarn或者Mesos模式。

Spark的运行模式主要取决于传递给SparkContext的deploy-mode和Master变量的值,个别模式还需要辅助的程序接口来配合使用。目前Master有local,yarn-client,yarn-client,spark(standalone),mesos模式,而deploy-mode必须是client(默认方式)或cluster中的一种。

1.3Spark的基本工作流程

Spark的Application在运行时,首先在Driver程序中创建SparkContext,将其作为调度的总入口,在其初始化的过程中会分别创建DAGSchedule(进行Stage调度)和TaskSchedule(进行Task调度)两个模块。DAGSchedule模块是基于Stage的调度模块,它为每个Spark job计算具有依赖关系的多个Stage任务阶段然后将每个Stage划分为一组具体的任务以TaskSet的

形式提交给底层的TaskSchedule模块来具体执行。TaskSchedule负责具体启动任务,监控和汇报任务的运行情况。而任务运行所需的资源需要向Cluster Manager申请。

  

Spark运行原理解析的更多相关文章

  1. Spark Shuffle原理解析

    Spark Shuffle原理解析 一:到底什么是Shuffle? Shuffle中文翻译为“洗牌”,需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算. 二: ...

  2. Spark核心技术原理透视一(Spark运行原理)

    在大数据领域,只有深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,从而占据领先地位. Spark的这种学术基因,使得它从一开始就在大数据领域建立了一定优势.无论是性能,还是方案的统一 ...

  3. (转)Apache和Nginx运行原理解析

    Apache和Nginx运行原理解析 原文:https://www.server110.com/nginx/201402/6543.html Web服务器 Web服务器也称为WWW(WORLD WID ...

  4. View Animation 运行原理解析

    Android 平台目前提供了两大类动画,在 Android 3.0 之前,一大类是 View Animation,包括 Tween animation(补间动画),Frame animation(帧 ...

  5. JavaScript运行原理解析

    原文:1.http://blog.csdn.net/liaodehong/article/details/50488098 2.Stack的三种含义 (阮一峰) 3. http://lib.csdn. ...

  6. Spark运行原理【史上最详细】

    https://blog.csdn.net/lovechendongxing/article/details/81746988 Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程 ...

  7. .NET CORE学习笔记系列(5)——ASP.NET CORE的运行原理解析

    一.概述 在ASP.NET Core之前,ASP.NET Framework应用程序由IIS加载.Web应用程序的入口点由InetMgr.exe创建并调用托管,初始化过程中触发HttpApplicat ...

  8. 转:Apache和Nginx运行原理解析

    Web服务器 Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务. 应用层使用HTTP协议. HTML文档格式. 浏览器统一资源定位器(URL). Web服 ...

  9. View 动画 Animation 运行原理解析

    这次想来梳理一下 View 动画也就是补间动画(ScaleAnimation, AlphaAnimation, TranslationAnimation...)这些动画运行的流程解析.内容并不会去分析 ...

随机推荐

  1. Static Resources In ASP.NET Core 1.0

    静态资源包括HTML,CSS,图片和Js文件.在ASP.NET Core 1.0中,静态资源默认的所在目录是wwwroot,wwwroot可以在project.json中定义. Steps: 在www ...

  2. Javascript-jQuery【1】-用promise()实现html()回调函数

    $('#divId').html(someText).promise().done(function(){ //your callback logic / code here });

  3. Codeforces 675E Trains and Statistic(DP + 贪心 + 线段树)

    题目大概说有n(<=10W)个车站,每个车站i卖到车站i+1...a[i]的票,p[i][j]表示从车站i到车站j所需买的最少车票数,求所有的p[i][j](i<j)的和. 好难,不会写. ...

  4. CodeForceS#276-B(求最大值)

    B. Valuable Resources   Many computer strategy games require building cities, recruiting army, conqu ...

  5. linux内存分配

    在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序.或是读取刚存取过 ...

  6. soapui中文操作手册(一)----创建一个新的项目

    1) 创建一个新的项目 点击项目,选择新建项目SOAP.这将打开一个新的SOAP项目对话框. 注意:你也可以做CTRL + N(WIN)或CMD+ N(MAC)来创建一个新的SOAP项目. 在新的SO ...

  7. 20145308刘昊阳 《Java程序设计》第4周学习总结

    20145308刘昊阳 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1 何谓继承 继承:面向对象中,为避免多个类间重复定义共同行为使用 把相同代码提升为父 ...

  8. CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据

    1.下载OpenResty和Redis OpenResty下载地址:wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz Re ...

  9. 洛谷 P1033 自由落体 Label:模拟&&非学习区警告

    题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公式为 d=1/2*g* ...

  10. 【BZOJ】1406: [AHOI2007]密码箱

    http://www.lydsy.com/JudgeOnline/problem.php?id=1406 题意:求$0<=x<n, 1<=n<=2,000,000,000, 且 ...