Spark快速入门系列(6) | Spark环境搭建—standalone(3) 配置HA高可用模式

2020-10-28 17:03:24 浏览数 (1)

一. 原理

Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题。

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

  • 1.基于文件系统的单点恢复(Single-Node Recovery with Local File System)–只能用于开发或测试环境。
  • 2.基于zookeeper的Standby Masters(Standby Masters with ZooKeeper)–可以用于生产环境。

  可以启动多个 master, 先启动的处于 Active 状态, 其他的都处于 Standby 状态。

二. 配置HA

  HA配置起来很简单,首先启动一个ZooKeeper集群,然后在不同节点上启动Master,注意这些节点需要具有相同的zookeeper配置。

  • 1. 修改spark-env.sh配置
代码语言:javascript复制
[bigdata@hadoop002 spark]$ cd conf/
[bigdata@hadoop002 conf]$ vim spark-env.sh 


# 注释掉如下内容:
#SPARK_MASTER_HOST=hadoop002
#SPARK_MASTER_PORT=7077

# 添加上如下内容:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop002:2181,hadoop003:2181,hadoop004:2181 -Dspark.deploy.zookeeper.dir=/spark"

参数说明

代码语言:javascript复制
1. spark.deploy.recoveryMode:恢复模式
2. spark.deploy.zookeeper.url:ZooKeeper的Server地址
3. spark.deploy.zookeeper.dir:保存集群元数据信息的文件、目录。包括Worker、Driver、Application信息。
  • 2. 分发配置文件
代码语言:javascript复制
// copy到hadoop003
scp /opt/module/spark/conf/spark-env.sh hadoop003:/opt/module/spark/conf/

// copy到hadoop004
scp /opt/module/spark/conf/spark-env.sh hadoop004:/opt/module/spark/conf/
  • 3. 启动 Zookeeper
代码语言:javascript复制
[bigdata@hadoop002 spark]$ cd /opt/module/zookeeper-3.4.10/
[bigdata@hadoop002 zookeeper-3.4.10]$ bin/start-allzk.sh 
  • 4. 在 hadoop002 启动全部节点
代码语言:javascript复制
[bigdata@hadoop002 module]$ cd spark/
[bigdata@hadoop002 spark]$ start-all.sh 
  • 5. 在 hadoop003 启动一个 master
代码语言:javascript复制
[bigdata@hadoop003 spark]$ sbin/start-master.sh
  • 6. 查看 master 的状态

注意:

代码语言:javascript复制
在普通模式下启动spark集群
只需要在主节点上执行start-all.sh 就可以了
在高可用模式下启动spark集群
先需要在任意一台主节点上执行start-all.sh
然后在另外一台主节点上单独执行start-master.sh

三. 测试HA

测试主备切换

代码语言:javascript复制
在hadoop002上使用jps查看master进程id
使用kill -9 id号强制结束该进程
稍等片刻后刷新hadoop003的web界面发现hadoop003为Alive

  本次的分享就到这里了

0 人点赞