文档章节

Spark(二):简单了解Spark架构与运行逻辑

berg-dm
 berg-dm
发布于 2016/06/02 20:41
字数 626
阅读 262
收藏 1

一:Spark的架构。

    1.  Driver:运行Application的main()函数并且创建SparkContext。

    2.  Client:用户提交作业的客户端。

    3.  Worker:集群中任何可以运行 Application 代码的节点,运行一个或多个 Executor
                        进程。

    4.  Executor :运行在 Worker 的 Task 执行器, Executor 启动线程池运行 Task,并且
                           负责将数据存在内存或者磁盘上。每个 Application 都会申请各自的 Executor                             来处理任务。

    5.  SparkContext:整个应用的上下文,控制应用的生命周期。

    6.  RDD: Spark 的基本计算单元,一组 RDD 形成执行的有向无环图 RDD Graph。

    7.  DAG Scheduler:根据 Job 构建基于 Stage 的 DAG 工作流,并提交 Stage 给                                                           TaskScheduler。

    8.  TaskScheduler:将 Task 分发给 Executor 执行。

    9.  SparkEnv:线程级别的上下文,存储运行时的重要组件的引用。

 

二:运行逻辑。

    1.  Spark 作业提交流程

        如下图,Client提交应用,Master找到一个Worker启动Driver,Driver向Master或者资源管理器申请资源,之后将应用转化为RDD有向无环图,再由DAGScheduler将RDD有向无环图转化为Stage的有向无环图提交给TaskScheduler,由TaskScheduler提交任务给Executor进行执行。任务执行的过程中其他组件在协同工作确保整个应用顺利执行。

        

 

    2.  Spark 作业运行逻辑。

        如下图,在 Spark 应用中,整个执行流程在逻辑上运算之间会形成有向无环图。Action 算子触发之后会将所有累积的算子形成一个有向无环图,然后由调度器调度该图上的任务进行运算。 Spark 的调度方式与 MapReduce 有所不同。 Spark 根据 RDD 之间不同的依赖关系切分形成不同的阶段( Stage),一个阶段包含一系列函数进行流水线执行。图中的 A、 B、 C、 D、 E、 F,分别代表不同的 RDD, RDD 内的一个方框代表一个数据块。数据从 HDFS 输入 Spark,形成 RDD A 和 RDD C, RDD C 上执行 map 操作,
转换为 RDD D, RDD B 和 RDD E 进行 join 操作转换为 F,而在 B 到 F 的过程中又会
进行 Shuff le。最后 RDD F 通过函数 saveAsSequenceFile 输出保存到 HDFS 中。

    

 

 

RDD: 弹性分布式数据集,  将在下一篇文章中简单概述:

                ing..........

资料文献: 来自 Spark大数据分析实战。

 

© 著作权归作者所有

berg-dm
粉丝 26
博文 98
码字总数 88970
作品 0
深圳
程序员
私信 提问
如何在万亿级别规模的数据量上使用Spark?

  【IT168 技术】   一、前言   Spark作为大数据计算引擎,凭借其快速、稳定、简易等特点,快速的占领了大数据计算的领域。本文主要为作者在搭建使用计算平台的过程中,对于Spark的理解...

网络大数据
2018/05/30
0
0
如何在万亿级别规模的数据量上使用Spark

一、前言 Spark作为大数据计算引擎,凭借其快速、稳定、简易等特点,快速的占领了大数据计算的领域。本文主要为作者在搭建使用计算平台的过程中,对于Spark的理解,希望能给读者一些学习的思...

风火数据
2018/05/14
0
0
从Hadoop到Spark的架构实践

当下,Spark已经在国内得到了广泛的认可和支持:2014年,Spark Summit China在北京召开,场面火爆;同年,Spark Meetup在北京、上海、深圳和杭州四个城市举办,其中仅北京就成功举办了5次,内...

Emilypz
2015/10/10
1K
0
大数据入门与实战-Spark上手

1 Spark简介 1.1 引言 行业正在广泛使用Hadoop来分析他们的数据集。原因是Hadoop框架基于简单的编程模型(MapReduce),它使计算解决方案具有可扩展性,灵活性,容错性和成本效益。在这里,主...

致Great
03/12
0
0
扣丁学堂大数据培训Spark架构运行及优势详解

  今天扣丁学堂大数据培训给大家介绍一下关于大数据开发中Spark架构运行详解及其优势详解,首先spark是一种分布式的计算框架。类似于大数据开发中Hadoop生态圈的MapReduce,计算思想和MR非...

扣丁学堂
2018/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部