news 2026/7/31 14:32:20

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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中, 在尾行增加下面的配置:

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 分发到每一台服务器上

scpspark-env.sh node2:/export/server/spark/conf/scpspark-env.sh node3:/export/server/spark/conf/


2.5先停止Standalone模式

[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

[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

[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查看启动进程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/29 8:45:26

LobeChat文件上传与语音交互实测:这些功能太惊艳了

LobeChat 文件上传与语音交互实测:这些功能太惊艳了 在智能助手逐渐从“能说话”迈向“懂场景”的今天,用户不再满足于简单的文本问答。我们期待的是一个能读文档、听声音、理解上下文,并像真人一样协助处理复杂任务的 AI 伙伴。而开源项目 L…

作者头像 李华
网站建设 2026/7/30 1:01:06

LobeChat日志记录与审计功能配置方法说明

LobeChat 日志记录与审计功能配置方法说明 在企业级 AI 应用日益普及的今天,一个看似简单的聊天界面背后,往往承载着复杂的安全、合规与运维需求。LobeChat 作为一款基于 Next.js 的开源大语言模型(LLM)交互平台,不仅提…

作者头像 李华
网站建设 2026/7/29 18:56:55

Qwen3-8B接入MCP实现动态工具调用

Qwen3-8B 接入 MCP 实现动态工具调用 在大模型从“能说”迈向“会做”的演进过程中,一个核心命题逐渐浮现:如何让轻量级语言模型真正具备行动能力?不是仅仅生成一段流畅的文本,而是能够感知用户意图、主动调用外部服务、完成真实…

作者头像 李华
网站建设 2026/7/30 22:08:15

Docker 从入门到精通教程

Docker 从入门到精通教程 目录 Docker 简介Docker 核心概念Docker 安装Docker 基础命令Docker 常用命令详解Dockerfile 编写Docker Compose实际应用场景常见问题与解决方案最佳实践学习路径建议常用命令速查表 Docker 简介 什么是 Docker? Docker 是一个开源的容…

作者头像 李华
网站建设 2026/7/30 3:12:19

waitGroup底层源码分析

面试官必问:Go WaitGroup 底层是怎么实现的?源码拆解 原理分析_哔哩哔哩_bilibili 如果大家不想看文字版的可以去观看我b站对应的视频,超详细,欢迎大家观看,链接在上面。 一、介绍waitGroup waitGroup就像一个任务…

作者头像 李华
网站建设 2026/7/30 8:05:53

LobeChat能否用于编写Prometheus告警规则?可观测性增强

LobeChat 能否用于编写 Prometheus 告警规则?可观测性增强 在现代云原生系统中,服务的稳定性早已不再依赖“看日志猜问题”的经验主义。随着微服务和 Kubernetes 的普及,系统的复杂度呈指数级上升,传统监控方式已难以应对快速定位…

作者头像 李华