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

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

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

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


Spark 集群搭建_Spark 集群结构

在搭建一个 Spark 集群之前先去了解一下Spark 集群的结构,了解完 Spark 集群的结构以后会对Spark的原理,有一些粗浅的认识,这时再去搭建这个集群,就更容易去记忆那些步骤。

Spark 集群结构了解过了以后,要进行 Spark 集群的这个搭建,在搭建这个Spark集群以后,这时集群其实并不是一个特别完整的一个集群,那是不是要进行高可用配置完了以后, Spark 的集群就已经是没有问题了,是一个可以使用的集群了,可以先去运行一个入门的案例来去测试一下。

运行案例测试集群:

Spark 集群搭建部分有四个步骤。

接下来就进入到第一个步骤,就是Spark集群的这个结构。现在切回到的笔记当中,在整个环节之前解决问题

Spark 如何把一个程序跑在一个集群当中的问题:

这个问题的本质,其实是解决如何去管理一个数以千计的规模的一个集群,这个工作一般都会有一些现成的工具来帮完成。

Cluster Mnanger :

刚才所说的一个现场的工具,就是这些 Cluster Manager,有一些工具能够帮助去管理集群这些工具。

先举一个小例子,比如说 Yarn 就是一个集群的管理工具, Yarn 在逻辑上分为 Resource Manager 和 node manager  两个部分啊除了 Yarn 在大数据领域里面还有一个比较知名的叫做 Mesos ,还有一个,最近比较火的叫作 Kubernetes ,除了三个外部的这个集群管理工具以外,Spark 还支持一个叫做 Standalone  的一个自身的一个集群管理工具。

所以 Spark  是支持四个集群管理工具的好,这些集群管理工具,就能够做到像是使用一个计算机一样,使用一整个集群。

在提交这个任务的时候,会先通过 Spark 的这个 client 来去接收提交过来的程序,把这个程序划分为很小很细的一些 task 一些任务,把这些把这些任务提交给这个 Clustermanager 。

image.png 

Clustermanager 就负责帮忙把这个任务提交到集群当中去运行,这是整个的流程。

运行和运行位置的问题:

假设在集群里面有这样的一个主机,这个主机里面,应该有一个称之为叫做守护进程的一个东西,就是可以和 Cluster Manager 之间保持一个心跳,或者保持一些关联,等有任务提交过来以后, Cluster Manager 可以把这个任务放入这个守护进程当中去运行,守护进程负责把这个程序,把这个任务在它所运行的这个计算机里面去运行,对于 Yarn 来说,Cluster Manager 可能就是类似于 Resource Manager 的那个组成,这个守护进程,就是 Yarn 当中的 Node Manager。

image.png

下面对整个图再进行一些扩展,把把里面的概念去确定

首先分为三个部分:

第一部分是client部分

第二个部分是 Cluster Manager部分

第三个部分是集群部分

Client :

暂且认为该叫 Driver,但是 Driver 并不是一个完整的 Cluster ,这个 Cluster 的还有一些其它的工具。

Cluster Manager :

可以刚才所说的那四种集群管理工具。 Cluster Manager 管理的其实是 Worker ,如果要去运行一个程序,并不是是直接在 Worker 这样的一个守护进程当中去运行而是在 Worker 它所启动的 Executor 当中去运行的,这是一个大致的一个运行情况。

Driver:

Driver就是用于去运行 Spark ,卖方法的,这样的一个组件,这个组件,是它的的主要任务,是帮助创建一些所运行程序的一些必备的依赖,比如说 Spark Context 这样的一个上下文对象,然后去把程序划分为不同的任务,并且把这些任务提交给 Cluster Manager 去运行好,Cluster Manager 是和外部集群打交道的一个工具,帮助运行 Task,Worker 就是对应的集群当中的每一个主机, Worker 本质上是一个守护进程,负责启动这个 Executor

Executor:

就是运行程序的运行 Task 的那个节点,那个程序

比如说一个 JVM 的虚拟机可以运行的一个Task,这个 JVM 有可能就是一个 Executor。

image.png

还是这张图,更细节的流程,首先,第一步肯定还是要去启动的这个 Driver,这个 Driver 启动了以后, Spark 才能够去运行, Driver 会接收提交过来的这个程序,然后,会去创建 Spark Session,通过这个 Spark Session 可以把这个程序,划分为不同的这个 Task 接下来 Driver ,会向 Cluster Manager 去申请集群的这个资源资源申请完毕了以后,那在 Worker 里头会启动对应的 Executor ,当这个 Exescutor 启动好以后,Driver Program 就会把对应的 Task 运行到 Executor

当中。

相关文章
|
2月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
37 0
|
2月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
32 0
|
2月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
32 0
|
2月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
49 0
|
2月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
70 0
|
2月前
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
88 0
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
57 0
|
1月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
130 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
2月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
72 0
|
2月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
45 0

相关实验场景

更多
下一篇
DataWorks