Spark应用运行流程
来源:互联网 发布:mac安装win10 不断重启 编辑:程序博客网 时间:2024/04/30 06:55
相关基本术语
-------------------------
Application:应用,即用户需要完成的应用程序。一般来说,这部分代码需要用户根据自己的需求来完成。这部分代码主要包括两部分:Driver和Executor。
Driver:顾名思义,驱动者,为Application准备运行环境,驱动并监控Application的运行。
Worker:当SparkContext申请到资源后,就会确定此应用程序在Cluster的哪些节点运行。运行Application的这些节点就叫做Worker。在并行计算中一个Application中会有多个Worker同时运行。
Executor:顾名思义,执行者。其实就是运行在Worker中的一个进程,负责此Worker上的Task的运行以及数据存储(内存或磁盘)。
Job:作业。多个并行计算的Task的集合,并且包含多个RDD及作用于相应RDD上的各种操作。
Stage:阶段。每个Job会被拆分成很多组Task。每组Task被称为Stage,所以TaskSet是Stage的表现形式。
Task:任务。它是在Worker上执行的最小单元。
Spark运行流程
----------------------
(1)构建Spark Application的运行环境。创建SparkContext后,SparkContext向资源管理器注册并申请资源。这里说的资源管理器有Standalone、Messos、YARN等。事实上,Spark和资源管理器关系不大,主要是能够获取Executor进程,并能保持相互通信。在SparkContext初始化过程中,Spark分别创建作业调度模块DAGScheduler和任务调度模块TaskScheduler(此例为Standalone模式下,在YARN-Client模式下任务调度模块为YarnClientClusterScheduler,在YARN-Cluster模式下为YarnClusterScheduler)。
(2)资源管理器根据预先设定的算法,在资源池里分配合适的Executor运行资源。在运行过程中,Executor运行情况将随着心跳信息发送到资源管理器上。考虑到Spark Application运行过程中SparkContext和Executor之间有大量信息的交换,提交Spark Context的Client应该靠近Worker节点,以方便信息传输。
(3)SparkContext构建DAG图(Directed Acyclic Graph,有向无环图),作业调度模块DAGScheduler将DAG图分解成Stage。DAGScheduler决定了运行Task的理想位置,并把这些信息连同Task本身传递给下层的TaskSchduler。
(4)Executor向SparkContext申请Task,告诉SparkContext,“我已经准备好了,请给我分配任务吧”。
(5)TaskScheduler维护所有TaskSet,当Driver收到Executor心跳时,TaskScheduler会根据其资源剩余情况分配相应的Task到Executor运行,同时SparkContext将应用程序代码发送给Worker,随后Task便开始在Worker上运行。在此期间,TaskScheduler还维护着所有Task的运行状态,重试失败的Task。如果Task失败是因为Shuffle数据丢失而引起的,则DAGScheduler需要重新提交运行之前的Stage;如果Shuffle数据没有丢失,则交给TaskScheduler处理。
(6)当Task运行结束后,反馈给SparkContext,并释放资源。
2 0
- Spark应用运行流程
- spark应用运行大体流程
- Spark运行流程
- spark运行流程
- Spark运行流程
- Spark 的运行流程原理
- 源码-spark运行流程分析
- Spark运行流程源码走读
- spark源码分析:spark运行总流程
- Spark应用运行时报错
- 在eclipse 运行 spark应用
- spark核心术语和运行流程
- 35 Spark系统运行循环流程
- Spark系统运行内幕机制循环流程
- Spark系统运行内幕机制循环流程
- Spark on Yarn解密及运行流程
- spark调优和JVM运行流程
- spark提交应用的全流程分析
- javaoop基础知识总结
- 1339
- L1-016. 查验身份证 java
- Java的线程控制方法和线程池
- iOS开发中解决UIScrollView滚动时NSTimer失效的问题
- Spark应用运行流程
- Enable VT-x in your BIOS 怎么解决
- C. Dishonest Sellers
- Ubuntu关于Hadoop2.7.x初步安装时,环境变量的设置
- Android操作数据库的框架-GreenDao基本使用记录
- C++基类派生类
- VS中调用DLL进行测试;vs进行远程调试;python中进行debug调试需要的文件
- WebGis实践(1)
- Zigbee网络架构+ZigBee的体系结构+理解zigbee节点的实现的案例+“51单片机” 和 “zigbee” 、 “cc2530芯片” 之间的关系+芯片cc2530