spark+zookeeper高可用集群搭建

Spark的高可用部署

1.高可用部署说明

Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存着Master单点故障的问题。如何解决这个问题,Spark提供了两种方案:

(1)基于文件系统的单点恢复(Single-Node Rcovery with Local File System)。主要用于开发或者测试环境。当Spark提供目录保存Spark Application和worker的注册信息。并将它们恢复状态在写在该目录中,这时,一旦Master发生故障,就可以通过重新启动Master进程(start-master.sh),恢复已运行的spark Application和Worker的注册信息。

(2)基于zookeeper的Standby Master。用于生产模式,其基本原理就是通过zookeeper来选举一个Master,其他的Master处于Standby状态,将spark集群连接到同一个Zookeeper实例,并启动一个Master,利用zookeeper提供的选举和状态保存的功能,可以使一个Master被选举成活着的master,其他Master处于Standby状态。如果现任的Master挂掉了,另外一个就可通过选举产生,并恢复到旧的Master状态,然后恢复调度,整个恢复过程可能需要1~2分钟。

 

2.修改配置文件

vim spark-env.sh

# 1.安装Zookeeper

# 2.修改spark-env.sh文件添加如下配置

注释掉如下内容:

# SPARK_MASTER_HOST=hadoop102  /注释掉master节点的ip,因为高可用部署的master是变化的

# SPARK_MASTER_PORT=7077

添加上如下内容:

  export SPARK_DAEMON_JAVA_OPTS="

  -Dspark.deploy.recoveryMode=ZOOKEEPER

  -Dspark.deploy.zookeeper.url=hdp01,hdp02,hdp03  //这里填写zookeeper集群的ip zookeeper单机式只需要填一个即可

  -Dspark.deploy.zookeeper.dir=/spark"

  参数说明;

    (1)recoveryMode,恢复模式(Master重新启动的模式)

      有三种:Zookeeper、FileSystem、None

    (2)deploy.zookeeper.url,Zookeeper的服务器地址

    (3)deploy.zookeeper.dir,保存集群元数据信息的文件、目录。

    包括worker,Driver,Application.

    注意:

    在普通模式下启动集群,只需要在主机上执行start-all.sh就可以了。

    在高可用模式下启动spark集群,先需要在任意一台节点上启动start-all.sh命令。然后在另外一台节点上单独启动master.

验证spark集群:出现worker,hdp02启动成功

再单独启动hdp02的master

master启动成功,在web UI验证,哪个master是alive

高可用验证,关闭hdp01节点的master,是否能够自动启动hdp02的master节点

spark+zookeeper高可用集群搭建成功!

猜你喜欢

转载自www.cnblogs.com/phy2020/p/12723547.html