Spark 集群搭建_高可用配置|学习笔记

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 快速学习 Spark 集群搭建_高可用配置

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

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


Spark 集群搭建_高可用配置


具体了解步骤如下:

(目标)简要了解如何使用 Zookeeper 帮助 Spark Standalone 高可用。

对于 Spark Standalone 集群,当 Worker 调度出现问题的时候,会自动的弹性容错,将出错的 Task 调度到其它 Worker 执行,但对于 Master 而言,会出现单点失败的情况,为避免此类问题, Spark 提供两种方式满足高可用:

①使用 Zookeeper 实现 Master 的主备切换

②使用文件系统做主备切换

image.png

主要介绍①使用 Zookeeper 实现 Master 的主备切换,


步骤如下:

一、Step1 停止 Spark 集群

二、Step2 修改配置文件,增加 Spark 运行时参数,从而指定 Zookeeper

的位置        

三、Step3 分发配置文件到整个集群

四、Step4 启动

五、Step5 查看 node01 master 和 node02 master 的 WebUI


一、Step1 停止 Spark 集群

cd /export /servers /spark

sbin /stop-all.sh (如图)

image.png


二、Step2 修改配置文件,增加 Spark 运行时参数,从而指定 Zookeeper 的位置

.进入 spark-env.sh 所在目录,打开 vi 编辑

cd /export /servers /spark /conf

vi spark-env.sh

.编辑 spark-env.sh,

添加 Spark 启动参数,并去掉 SPARK_HOST 地址

image.png

#指定Java Home

export JAVA HOME=/export/servers/jdk 1.8.0_ 141

#指定Spark Master地址

#export SPARK MASTER _HOST=node 01

export SPARK_ MASTER _PORT=7077

#指定Spark History运行参数

Export SPARK _HISTORY_OPTS=“Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=h

dfs://node01:8020/spark_log”

#指定Spark运行时参数

exportSPARK_DAEMON_JAVA_OPTS=-

Dspark.deploy.recoveryMode=

ZOOKEEPER-Dspark.deploy.zookeeper.url=node01:2181,node02:2181 ,

Node03:2181 -Dspark.deploy.zookeeper. dir=/spark” (如图)

image.png

保存并退出配置文件。


三、Step3 分发配置文件到整个集群

cd/export/servers/spark/conf

scp spark-env. sh node 02:$PWD

scp spark-env. sh node 03:$PWD (如图)

image.png


四、Step4 启动

.在 node01 上启动整个集群

cd/export/servers/spark

sbin/start-all.sh

sbin/start-history-server.sh (如图)

image.png

.在 node02 上单独再启动一个 Master

cd/export/servers/spark

sbin/start-master.sh (如图)

image.png


五、Step5查看 node01 master 和 node02 master 的 Web

UI

会发现一个是 ALIVE (主),另外一个是 STANDBY (备)

image.png

如果关闭一个,则另一个成为 “ALIVE” ,但这个过程可能持续两分钟作用,需要耐心等待。

#在 Node01 中执行如下指令

cd/export/servers/spark/

sbin/stop-master.sh

image.png

主备切换的核心原理即: Spark HA 选举

Spark HA 的 Leader 选举使用一个叫做 Curator 的 Zookeeper 客户端来进行。

Zookeeper 是一个分布式强一致性的协调服务, Zookeeper 最基本的一个保证是:

如果多个节点同时创建一个 ZNode, 只有一个能成功创建,这个做法的本质使用的是 Zookeeper 的 ZAB 协议,能够在分布式环境下达成一致。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
分布式计算 大数据 Spark
大数据-95 Spark 集群 SparkSQL Action与Transformation操作 详细解释与测试案例(二)
大数据-95 Spark 集群 SparkSQL Action与Transformation操作 详细解释与测试案例(二)
39 1
|
1月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
30 0
|
1月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
29 0
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
30 0
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
39 0
|
1月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
42 0
|
1月前
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
78 0
|
1月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
34 0
|
1月前
|
存储 SQL 分布式计算
大数据-95 Spark 集群 SparkSQL Action与Transformation操作 详细解释与测试案例(一)
大数据-95 Spark 集群 SparkSQL Action与Transformation操作 详细解释与测试案例(一)
38 0
|
1月前
|
SQL 分布式计算 大数据
大数据-94 Spark 集群 SQL DataFrame & DataSet & RDD 创建与相互转换 SparkSQL
大数据-94 Spark 集群 SQL DataFrame & DataSet & RDD 创建与相互转换 SparkSQL
50 0