返回 导航

Spark

hangge.com

Spark - 安装部署详细教程4(配置高可用集群)

作者:hangge | 2023-09-15 09:05
    在之前的教程中我们搭建的 Spark 集群只有一个 Master 节点,因此会存在单点故障问题。为了解决该问题,我们需要在集群中配置多个 Master 节点,一旦处于活动状态的 Master 发生故障时,由备用 Master 提供服务,保证作业可以继续执行。这个便是高可用性(HAHigh Availability)。

四、配置高可用集群

1,实现方式 

Spark 高可用性的实现通常有如下两种方式之(本文介绍第一种方式):
  • Spark Standalone 模式的高可用性:使用 Spark 自带的 HA 机制,通过 Zookeeper 实现主节点的选举和故障转移,从而保证 Spark 集群的高可用性。 
  • Spark on YARN 模式的高可用性:使用 YARN ResourceManager HA 机制,通过 ResourceManager 的自动故障转移实现 Spark 集群的高可用性。

2,操作步骤

(1)首先停止 Spark 集群,启动 Zookeeper 服务。关于 Zookeeper 的安装部署可以参考我之前写的文章:

(2)修改所有 master 节点的 spark-env.sh 文件,增加 Zookeeper 相关内容(注意 Zookeeper 地址根据实际情况自行修改),同时根据所在的服务器地址设置对应的 SPARK_MASTER_HOSTSPARK_MASTER_PORT
#下面内容根据具体所在的服务器进行修改
SPARK_MASTER_HOST=192.168.60.8
SPARK_MASTER_PORT=7077

#新增下面内容
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=192.168.60.8:2181,192.168.60.2:2181,192.168.60.1:2181
-Dspark.deploy.zookeeper.dir=/spark"

(3)修改后启动各个 master 节点服务:
./sbin/start-master.sh

(4)接着启动各个 worker 节点服务(注意启动参数中可以将所有的 master 节点都填入):
./sbin/start-worker.sh spark://192.168.60.8:7077,192.168.60.2:7077

3,使用测试

(1)部署好之后我们访问各个 Master 节点的 Spark Web UI 监控页面,如果 Status 显示 ALIVE 则表示为活动状态:

(2)而如果 Status 显示 STANDBY 则表示处于备用状态(可以看到 Workers 列表中也没有任何信息):

(3)如果我们将 ALIVE 节点服务停用,稍等一段时间后,原先另一个 STANDBYMaster 状态提升为活动状态(Workers 列表中也有具体的 Worker 信息):

(4)如果我们需要提交应用到高可用集群,在提交参数重将多个 master 服务地址填入即可:
./bin/spark-submit \
--master spark://192.168.60.8:7077,192.168.60.2:7077 \
--class org.apache.spark.examples.SparkPi \
examples/jars/spark-examples_2.12-3.4.1.jar \
10
评论

全部评论(0)

回到顶部