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 当中又是怎么样的。

相关文章
|
22天前
|
存储 分布式计算 调度
Spark Master HA 主从切换过程不会影响到集群已有作业的运行, 为什么?
Spark Master 的高可用性(HA)机制确保主节点故障时,备用主节点能无缝接管集群管理,保障稳定运行。关键在于: 1. **Driver 和 Executor 独立**:任务执行不依赖 Master。 2. **应用状态保持**:备用 Master 通过 ZooKeeper 恢复集群状态。 3. **ZooKeeper 协调**:快速选举新 Master 并同步状态。 4. **容错机制**:任务可在其他 Executor 上重新调度。 这些特性保证了集群在 Master 故障时仍能正常运行。
|
4月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
57 0
|
4月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
47 0
|
4月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
53 0
|
4月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
66 0
|
4月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
133 0
|
4月前
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
126 0
|
3月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
200 2
|
3月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
234 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
3月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
192 1

相关实验场景

更多