Spark架构原理

前言

本文总结了Spark架构原理,其中主要包括五个组件:Driver、Master、Worker、Executor和Task,简要概括了每个组件是干啥的,并总结提交spark程序之后,这五个组件运行的详细步骤。

1、流程图

为了直观,就把流程图放在最前面了

2、Driver

driver是一个进程,我们编写的spark程序运行在driver上,由dirver进程执行,driver是作业的主进程,具有main函数,是程序的入口点,driver进程启动后,向master发送请求,进行注册,申请资源,在后面的executor启动后,会向dirver进行反注册,dirver注册了executor后,正式执行spark程序,读取数据源,创建rdd或dataframe,生成stage,提交task到executor

3、Master

Master是个进程,主要负责资源的调度和分配,集群的监控等。

4、Worker

worke是个进程,主要负责两个,一个是用自己的内存存储RDD的某个或某些partition,另一个是启动其他进程和线程,对RDD上的partition进行处理和计算。

5、Executor

Executor是个进程,一个Executor执行多个Task,多个Executor可以并行执行,可以通过–num-executors来指定Executor的数量,但是经过我的测试,Executor最大为集群可用的cpu核数减1。

6、Task

Task是个线程,具体的spark任务是在Task上运行的,某些并行的算子,有多少个分区就有多少个task,但是有些算子像take这样的只有一个task。

7、详细的流程

1、Driver进程启动之后,会进行一些初始化的操作,在这个过程中,会发送请求到master 2、Master,接收到Driver的注册之后,发送请求给Worker,进行资源的调度和分配,也就是Executor的分配 3、Worker接收到master的请求,启动Executor 4、Executor启动之后,会向Driver进行反注册 5、Driver注册了Executor之后,正式开始执行Spark程序,首先读取数据源,创建RDD 6、HDFS文件被读取到多个Worker节点,形成RDD 7、在worker上生成RDD之后,Driver会根据我们对RDD定义的操作,提交相应数量的Task到Executor上

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2202
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4938
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2586
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6998
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5606
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2988
来自专栏落花落雨不落叶

canvas画简单电路图

63611
来自专栏杨龙飞前端

scrollto 到指定位置

2534

扫码关注云+社区