105-Spark之Standalone HA环境搭建过程

一、高可用的HA

单点故障的问题是无法避免的问题,如何解决这个单点故障的问题,Spark提供了两种方案:

1.基于文件系统的单点恢复(Single-Node Recovery with Local File System)-只能用于开发或测试环境。

2.基于zookeeper的Standby Masters(Standby Masters with ZooKeeper)--可以用于生产环境。

ZooKeeper提供了一个LeaderElection机制,利用这个机制可以保证虽然集群存在多个Master,但是只有一个是Active

的,其他的都是Standby。当Active的Master出现故障时,另外的一个StandbyMaster会被选举出来。由于集群的信息

,包括Worker,Driver和Application的信息都已经持久化到文件系统,因此在切换的过程中只会影响新job的提交,对

于正在进行的job没有任何的影响。加入Zookeeper的集群整体架构如下图所示。

二、搭建步骤

2.1务必确保Zookeeper 和 HDFS 均已经启动!

【如果没有配置过zookeeper的同学可以看我的上一篇文章】

2.2先在spark-env.sh中, 删除: SPARK_MASTER_HOST=node1

原因: 配置文件中固定master是谁, 那么就无法用到zookeeper的动态切换master功能了.

2.3在spark-env.sh中, 在尾行增加下面的配置:

bash 复制代码
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark-ha"

2.4将spark-env.sh 分发到每一台服务器上

bash 复制代码
scp spark-env.sh node2:/export/server/spark/conf/
scp spark-env.sh node3:/export/server/spark/conf/

2.5先停止Standalone模式

bash 复制代码
[hadoop@node1 conf]$ cd ..
[hadoop@node1 spark]$ sbin/stop-all.sh
node1: no org.apache.spark.deploy.worker.Worker to stop
node3: no org.apache.spark.deploy.worker.Worker to stop
node2: no org.apache.spark.deploy.worker.Worker to stop
no org.apache.spark.deploy.master.Master to stop
[hadoop@node1 spark]$ 

2.6使用jps查看三个节点机器是否有Master和Worker

2.7在node1节点上启动Master 同时读取worker的配置去启动worker

bash 复制代码
[hadoop@node1 spark]$ sbin/start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /export/server/spark/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-node1.liushao.cn.out
node1: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node1.liushao.cn.out
node3: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node3.liushao.cn.out
node2: starting org.apache.spark.deploy.worker.Worker, logging to /export/server/spark/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node2.liushao.cn.out
[hadoop@node1 spark]$ 

2.8 在node2上启动备用的master

bash 复制代码
[hadoop@node2 ~]$ cd /export/server/spark
[hadoop@node2 spark]$ sbin/start-master.sh
starting org.apache.spark.deploy.master.Master, logging to /export/server/spark/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-node2.liushao.cn.out
[hadoop@node2 spark]$ 

到此为止就启动了两个master节点 三个worker节点

切记使用jps查看启动进程

相关推荐
武子康1 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
肌肉娃子2 天前
20260227.spark.Spark 性能刺客:千万别在 for 循环里写 withColumn
spark
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库3 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟3 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长3 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城3 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark