博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark 架构原理介绍 以及 job、task、stag 概念
阅读量:6307 次
发布时间:2019-06-22

本文共 1168 字,大约阅读时间需要 3 分钟。

Spark运行模式

一:Spark 运行架构介绍

  相关术语概念详解:

    Application:指的是用户编写的Spark应用程序,包含了一个Driver功能的代码和分布集群中多节点上运行的Executor代码。

    Driver:Spark中的Driver就是运行Applicationmain()函数并且创建SparkContextSparkContext为Spark准备运行环境,负责和ClusterManager通信,进行资源的申请、任务的分配和监控,当Executor部分运行完毕后,负责SparkContext关闭。

    Worker:集群中运行Application代码的节点。可以理解为服务器。

    Executor:Application运行在work节点上的一个进程,该进程负责运行task。(理解work节点上的一个进程,来执行Driver的任务task)

    ClusterManager:在集群上获取资源的外部服务。

    Job(作业):包含多个task组成的并行计算。rdd包括转换和运行Action,只要有一个Action就是一个Job。

    Stag(阶段):每个Job会被拆分成多组task。

    Task(任务):最终被推送的到Executor进程上的任务。

  Spark基本任务流程图

    

    1:构建Spark Application的运行环境 ,启动sparkContext,sc注册并申请Executor

    2:资源管理器分配Executor资源并启动 ****ExecutorBackend,Executor运行状态随着心跳发送到资源管理器

    3:SC开始构建DAG(有向无环图),DAG开始分解成stage,并且有TaskSet发送给Task Scheduler 。Executor想SC申请Task。

    DAGSchuduler

      DAGSchuduler把一个Spark作业换成StageDAG根据RDDStage之间的关系找出开销最小的调度方法,然后StageTaskSet的形式提交给TaskScheduler

    TaskScheduler

      TaskScheduler维护所有的TaskSet,当Executor向Driver发送心跳时,TaskScheduler会根据其资源剩余情况分配相应的Task

 

        上图是读取一个文件,spark解析为,一个Job,两个stage ,name下有33个文件,那么就有66个文件,这样就有66个task。

 

 

 

 

转载于:https://www.cnblogs.com/Tonyzczc/p/10421521.html

你可能感兴趣的文章
2015-01-29
查看>>
2016-01-26
查看>>
Thymeleaf 模板 在spring boot 中的引用和应用
查看>>
Java学习笔记二十三:Java的继承初始化顺序
查看>>
oracle的nvl()函数的用法
查看>>
宏定义函数的易错点
查看>>
洛谷【P2458】[SDOI2006]保安站岗 题解 树上DP
查看>>
Shredding Company 碎纸机,dfs()枚举每一种情况,再加剪枝。
查看>>
命名空间和模块化编程 - C++快速入门39
查看>>
结构化程序设计03 - 零基础入门学习Delphi12
查看>>
今天才知道怎么插入代码!!!!!!!!!
查看>>
D2007在64位Win7出现 delphi 2007 assertion failure thread32.cpp 的解决办法
查看>>
STM32的TAMPER-RTC管脚作为Tamper的使用[转]
查看>>
[记]一个逐步“优化”的范例程序
查看>>
2012-01-09_2
查看>>
Visual Studio 2015 开发MVC4出现错误
查看>>
MongoDB 学习笔记之 批处理
查看>>
orcale 之 存储过程
查看>>
A程序是B程序的输入
查看>>
java基础数组(带基础排序法)
查看>>