Spark 集群搭建_Spark 集群结构_扩展|学习笔记

简介: 快速学习 Spark 集群搭建_Spark 集群结构_扩展

开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段Spark 集群搭建_Spark 集群结构_扩展】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/688/detail/11938


Spark 集群搭建_Spark集群结构_扩展


spark 集群结构进行一个小小的扩展,准备了两个问题

第一个问题:

Spark 程序可以在什么地方运行?

它是可以运行在集群里的,不能说每一次去执行一个很细节很小的任务,都在集群里面运行,所以 Spark 当然也是支持单机模式的,这种单机模式,以往是一般在进行测试,或者再去探索数据的时候,他可能用的比较多一些。

它可以运行在集群中,一些集群,可能是被 Yarn 管理的,有一些集群是被 mesos 管理的,有一些是被 Kubernertes 管理的,因此 Spark 能支持的集群就以下四种

第一种是 Spark 自身的 Standalone

第二种  Hadoop Yarn

第三种 Apache Mesos

第四种 Kubernetes

Spark 可以在单机运行,可以在 Stand alone 集群当中运行,可以在这儿当中运行等等。

第二个问题:

Driver 和 Worker 在什么时候启动,其实问题的本质,是去思考集群的结构。

但是对于问题本身来说,因为 spark 可以运行在不同的集群当中,所以问题也要用不同的视角来去看它,比如说 spark 的运行在自己的集群当中,那么 worker 启动的行为就和它运行在 Yarn 当中会有一定的区别,所以对于这道问题,分开两部分去讲解,第一部分是在 Standalone 当中的表现,第二部分是在 Yarn 当中的表现

在 Spark Standalone 当中的表现:

image.png

Worker 什么时候启动,Driver什么时候启动,在哪儿运行,首先,在 Spark Standalone 的集群当中分为两个组建,一个是 Master,一个是 Worker,Master就相当于是前面的Cluster Manager,Worker就相当于前面这张图的 Worker, Master 用于去接收外部提交过来的任务,那么他把任务分发到不同的 worKer 里面去执行,Worker 会去启动 Executor ,实行分发过来的任务,大概是流程,因为集群是 spark 身,所以在启动 spark 集群的时候,Worker就会被创建,这是第一点。

还有一个问题:

Driver program 它是运行在 shell 命令窗口当也可以,它也可以运行在的上窗口当中,运行在的命令行当中。

这种运行模式叫做 Client ,也就是说可以直接本机里面通过在本机里运行的 driver program 去先运行一下的 spark 的MI方法,然后去把 task 划分出来,再和 ClusterManerger  进行交互来去运行这 task。

除了 client 模式不太好管理,比如说 driver 可能需求的资源比较多,或者比较少,没有办法控制所申请的资源

第二种模式:

driver 也可以运行在某个 Worker 当中,也就是运行在某个从节点当中, Driver, Driver,它可以运行在某个 Worker当中,也就是运行在某个从节点当中,跟 Task 是一样的,Task 运行在 worker 当中,Driver 也可以运行在这当中,这是第二种模式,这种模式叫 cluster 模式,特别的运行在 worker 当中,Driver 也可以运行在 worker 当中,这是第二种模式,这种模式叫做 cluster 模式

Driver有两种运行的地方:

第一个:

运行在本机,运行在 shell 中,叫 Client 的模式

第二种:

可以运行在 worker 当中,运行在集群的节点当中,那么这种模式,称之为叫做cluster 模式,这是 spark stand alone 的一个运行。

当 spark 和 yarn 配合的时候,行为应该是怎么样的?

image.png

先来看一张图,首先第一点,地方还是会有一个 Client,client 不一定非要指的是 Driver ,有可能只是 Spark 的命令行工具,那个命令行工具里面运行 Driver,那么这种模式叫做 Cluster 模式,那么接下来来看一看啊,当 Client 把任务提交到 Yarn 当中去运行的时候,那么首先是不是和 resource manager 来进行交互,spark 整个的运行的步骤,首先第一点,如果要在 Yarn 当中去执行什么程序的话,首先要去创建一个叫做 Application Master的一个组件,Application Master,来进行整个的汲取资源申请啊,等等这样的一些调度的行为对吧,所以,第一步肯定要先启动Application Master,启动好 Application Master 以后,Application Master,它其中就运行了 Driver。

在和 Yarn 配合的过程当中,Driver 也有两个运行方式

第一种,称之为叫做 Client ,第二种叫做 Cluster,Cluster 方式的运行是运行在 ApplicationMaster 当中的,接下来 Driver 去划分任务,然后把任务通过 Resource Manager 运行到不同的 Node Manager 当中,运行到不同的 Container 里面去运行了 Executor,是这样的一个过程吧。

对刚才内容的一个小小的扩展,主要说了两个问题,第一个问题,spark 的程序可以运行在哪儿,单机和集群集群,集群有四种,第二个问题是 Driver 跟 Worker 什么时候启动,在哪儿启动,分为两种情况,在 Standalone 的模式下是怎么样的,在 Yarn 当中又是怎么样的。

相关文章
|
5月前
|
分布式计算 Linux Spark
179 Spark集群安装
179 Spark集群安装
36 0
|
4月前
|
分布式计算 监控 Java
Note_Spark_Day02:Standalone集群模式和使用IDEA开发应用程序
Note_Spark_Day02:Standalone集群模式和使用IDEA开发应用程序
51 0
|
6月前
|
分布式计算 API 流计算
22MyCat - Spark/Storm 对join扩展(简略)
22MyCat - Spark/Storm 对join扩展(简略)
30 0
|
7月前
|
分布式计算 大数据 Spark
基于Docker搭建大数据集群(四)Spark部署
基于Docker搭建大数据集群(四)Spark部署
|
2月前
|
分布式计算 数据处理 Scala
Spark 集群和 Scala 编程语言的关系
Spark 集群和 Scala 编程语言的关系
29 0
|
3月前
|
SQL 分布式计算 测试技术
使用UDF扩展Spark SQL
使用UDF扩展Spark SQL
|
6月前
|
分布式计算 资源调度 Hadoop
Spark on Yarn集群模式搭建及测试
Spark on Yarn集群模式搭建及测试
156 0
|
7月前
|
分布式计算 资源调度 监控
Spark Yarn模式部署集群
Spark Yarn模式部署集群
49 1
|
3月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
161 0
|
16天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。