02 宏观角度看 Spark 架构原理

Posted Jianpan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02 宏观角度看 Spark 架构原理相关的知识,希望对你有一定的参考价值。

这一篇文章我们从宏观的角度来简略分析 Spark 框架的架构原理,姑且忽略一些细节,分析Spark框架的组件功能,运算流程。

Driver : 驱动程序  

Spark 中的 Driver 即运行在 Application 的 Main() 函数并且创建 SparkContext,其中创建 SparkContext 的目的是为了准备 Spark 应用程序的运行环境。我们编写的 Spark 程序就是上传到 Driver 上,由 Driver 进程执行。


Master :

Spark 原生的资源管理器,是一个进程,主要负责资源的分配,调度。


Executor : 执行器

Application 运行在 Worker 节点上的一个进程,该进程负责运行 Task,并且负责将数据存在内存或者磁盘上,每个 Application 都有各自独立的一批Executor。




1. Driver 启动后会做一些初始化的操作,在这个过程中会发送请求到 Master 上进行 Spark 应用程序的注册,简单来说就是与 Master 建立通信,进行资源的申请、任务的分配和监控等;当 Executor部分运行完毕后,Driver 负责将 SparkContext 关闭。通常 SparkContext 代表 Driver。


2. WorkerNode 是集群中任何可以运行 Application 代码的节点,主要负责启动 Executor 进程,对 RDD 上的 partition 数据进行处理计算。


类似于 Yarn 中的 NodeManager 节点。在 Standalone 模式中指的就是通过 Slave 文件配置的 Worker 节点,在 Spark on Yarn 模式中指的就是 NodeManager节点,在 Spark on Messos 模式中指的就是 Messos Slave 节点。


Master 在接收到了 Spark 应用程序的注册申请之后,会发送请求给 Worker,进行资源的调度和分配,资源分配其实就是 Executor 的分配。


3. Executor 启动之后会向 Driver 进行反向注册,通过这样 Driver 就可以获悉哪些 Executor 是可以为我服务,听我差遣。在Driver 注册了一些Executor 之后就可以开始执行编写的 Spark 程序了,第一步就是创建 RDD,读取数据源。


4. 例如我们从 HDFS上 读取数据,HDFS 的文件内容被读取到多个 worker 节点上,形成内存中的分布式数据集,也就是初始的RDD。


5. Driver 会根据我们对 RDD 的各种算子操作转换为一堆堆的 task 任务并分配到 Executor 中,Executor 在接收到 task 任务之后,会启动多个线程来执行 task 。


Executor 和 Task 其实就是负责执行对 RDD 的 partition(分片数据)进行并行计算,执行 RDD 中定义的算子操作,比如 map、flatMap,reduce等。




ps:下一篇文章会详细剖析各个组件的原理,细节,敬请关注。



02 宏观角度看 Spark 架构原理


推荐阅读:


   



如果觉得文章不错,欢迎转发点赞,另外有错误欢迎留言指出,谢谢。

02 宏观角度看 Spark 架构原理



Jianpan


更多好文,敬请期待!




以上是关于02 宏观角度看 Spark 架构原理的主要内容,如果未能解决你的问题,请参考以下文章

万字详解Oracle架构原理进程,学会世间再无复杂架构

5分钟学会mysql的逻辑架构原理

大数据之Spark:Spark 底层执行原理

Tomcat 内部运行原理

一文搞懂Mybatis架构与工作原理

HBase原理分析