spark -- Spark原理初探
基本概念
http://spark.apache.org/docs/latest/cluster-overview.html
●名词解释
1.Application:指的是用户编写的Spark应用程序/代码,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。
2.Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等
3.Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;
4.Executor:是运行在工作节点Worker上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程;
5.RDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;
6.DAG:Directed Acyclic Graph有向无环图,反映RDD之间的依赖关系和执行流程;
7.Job:作业,按照DAG执行就是一个作业;Job==DAG
8.Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集
9.Task:任务,运行在Executor上的工作单元,一个Task计算一个分区,包括pipline上的一系列操作
基本流程
●Spark运行基本流程
1.当一个Spark应用被提交时,首先需要为这个Spark Application构建基本的运行环境,即由任务控制节点(Driver)创建一个SparkContext,
2.SparkContext向资源管理器注册并申请运行Executor资源;
3.资源管理器为Executor分配资源并启动Executor进程,Executor运行情况将随着心跳发送到资源管理器上;
4.SparkContext根据RDD的依赖关系构建成DAG图,并提交给DAGScheduler进行解析划分成Stage,并把该Stage中的Task组成Taskset发送给TaskScheduler。
5.TaskScheduler将Task发放给Executor运行,同时SparkContext将应用程序代码发放给Executor。
6.Executor将Task丢入到线程池中执行,把执行结果反馈给任务调度器,然后反馈给DAG调度器,运行完毕后写入数据并释放所有资源。
流程图解
总结
1.Spark应用被提交-->SparkContext向资源管理器注册并申请资源-->启动Executor
2.RDD-->构建DAG-->DAGScheduler划分Stage形成TaskSet-->TaskScheduler提交Task-->Worker上的Executor执行Task
spark -- Spark原理初探相关推荐
- Spark 分布式计算原理
Spark 分布式计算原理 Spark Shuffle 1)在数据之间重新分配数据 2)(将父RDD重新定义进入子RDD)每一个分区里面的数据要重新进入新的分区 3)每一个shuffle阶段尽量保存在 ...
- Spark Shuffle原理解析
Spark Shuffle原理解析 一:到底什么是Shuffle? Shuffle中文翻译为"洗牌",需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节 ...
- spark启动的worker节点是localhost_Spark大数据在线培训:Spark运行原理解析
在大数据技术框架当中,Spark是继Hadoop之后的又一代表性框架,也是学习大数据当中必学的重点技术框架.在这些年的发展当中,Spark所占据的市场地位,也在不断拓展.今天的Spark大数据在线培训 ...
- .Spark Streaming(上)--实时流计算Spark Streaming原理介
Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍 http://www.cnblogs.com/shishanyuan/p/474 ...
- Spark SQL原理及常用方法详解(二)
Spark SQL 一.Spark SQL基础知识 1.Spark SQL简介 (1)简单介绍 (2)Datasets & DataFrames (3)Spark SQL架构 (4)Spark ...
- Spark架构原理和生态系统
参考一文读懂 Apache Spark Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Clust ...
- Spark分布式计算原理
Spark分布式计算原理 一.RDD特征 1.Lineage:血统.遗传 2.依赖关系 二.DAG(有向无环图)工作原理 三.Spark Shuffle过程 四.RDD持久化 1.RDD缓存机制 2. ...
- Spark工作原理入门
Spark工作原理入门 文章目录 Spark工作原理入门 1.功能概要 基本描述 运用场景 实际使用 2.模块组成 HDFS MLlib Mesos Tachyon GraphX Spark SQL ...
- 深入理解Spark SQL原理
1.前言 本文是对自己阅读Spark SQL源码过程的一个记录,主线是对尚硅谷Spark SQL最后练习中建立的表的一个简单SQL编写的源码实现流程的跟读.通过自问自答的方式,学习完了整个Spar ...
- Spark 核心原理
文章目录 1. Spark核心原理 2. 消息通信原理 2.1. Spark运行时消息通信 2.2. 作业执行原理 2.2.1. 总述 2.2.2. 提交Job 2.2.3. 划分stage 2.2. ...
最新文章
- pap和chap交叉认证
- http status 汇总
- Nature子刊:王四宝组揭示按蚊肠道共生菌抗疟的分子机制
- MySQL查询一周借阅最多的书_SQL中的借书经典案例
- ajax表单排序java,java如何区分是form表单请求,还是ajax请求
- jenkins 命令行 CLI jenkins-cli.jar
- VScode 格式化代码快捷键、修改快捷键
- LeetCode 491. 递增子序列(回溯+判重剪枝)
- Spring Cloud Alibaba迁移指南(三):极简的 Config
- Kubernetes在上汽集团云平台及AI方面的应用
- 分项:我从世界上最成功的人身上学到的10件事
- 【Flink】flink Kafka报错 : Failed to send data to Kafka: This server is not the leader for that topic-pa
- ucc编译器(语义分析)
- 定价越便宜,越赚钱?
- Android studio 去除软件运行时顶部原有的蓝色/绿色框
- 学习Fiddler安全测试
- 计算机一直进入安全模式开机,电脑启动时自动进入安全模式怎么办
- linux用户和组的权限管理
- php 月初时间,php 月初,月末时间大统计
- MapReduce之week2 test 分区计算结余(练习)