Spark基础学习笔记07:搭建Spark HA集群

本文介绍了Spark高可用(HA)集群的搭建过程,包括基于ZooKeeper的Standby Masters配置,详细阐述了ZooKeeper的安装、配置及集群状态管理。通过在master、slave1和slave2节点上执行相关命令,实现ZooKeeper和Spark的HA集群。测试显示,当活动Master故障时,ZooKeeper能快速选举新的Master,确保Spark集群的高可用性。
摘要由CSDN通过智能技术生成

零、本讲学习目标
了解Spark HA集群工作原理
掌握搭建Spark HA集群基本步骤
能够测试Spark HA集群的高可用性
一、搭建Spark HA集群
(一)Spark HA集群概述
Spark Standalone和大部分Master/Slave模式一样,都存在Master单点故障问题,解决方式是基于ZooKeeper实现两个Master无缝切换,类似HDFS的NameNode HA(High Availability,高可用)或YARN的ResourceManager HA。
Spark可以在集群中启动多个Master,并使它们都向ZooKeeper注册,ZooKeeper利用自身的选举机制保证同一时间只有一个Master是活动状态(active)的,其他的都是备用状态(Standby)的。
当活动状态的Master出现故障时,ZooKeeper会从其他备用状态的Master选出一台成为活动Master,整个恢复过程大约在1分钟之内。对于恢复期间正在运行的应用程序,由于应用程序在运行前已经向Master申请了资源,运行时Driver负责与Executor进行通信,管理整个应用程序,因此Master的故障对应用程序的运行不会产生影响,但是会影响新应用程序的提交。
默认情况下,Standalone的Spark集群是Master-Slaves架构的集群模式,由一台master来调度资源,这就和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题。如何解决这个单点故障的问题呢?Spark提供了两种方案:基于文件系统的单点恢复(Single-Node Recovery with Local FileSystem)和基于ZooKeeper的Standby Masters(Standby Masters with ZooKeeper)。其中ZooKeeper是生产环境下的最佳选择。
ZooKeeper提供了一个Leader Election机制,利用这个机制你可以在集群中开启多个master并使它们都注册到ZooKeeper实例,ZooKeeper会管理使其中只有一个是Active的,其他的都是Standby的,Active状态的master可以提供服务,standby状态的则不可以。ZooKeeper保存了集群的状态信息,该信息包括所有的Worker,Driver 和Application。当Active的Master出现故障时,ZooKeeper会从其他standby的master中选举出一台,然后该新选举出来的master会恢复挂掉了的master的状态信息,之后该Master就可以正常提供调度服务。整个恢复过程只需要1到2分钟。需要注意的是,在这1到2分钟内,只会影响新程序的提交,那些在master崩溃时已经运行在集群中的程序并不会受影响。为了开启这个恢复模式,你可以用下面的属性在spark-env.sh中设置SPARK_DAEMON_JAVA_OPTS。
在这里插入图片描述

(二)Spark HA集群架构
以Spark Standalone模式的client提交方式为例,其HA的架构如下图所示。
在这里插入图片描述

(三)集群角色分配表
接着前面搭建好的Spark Standalone集群继续进行Spark HA的搭建,搭建前的角色分配如下表所示。
在这里插入图片描述

(四)安装配置ZooKeeper
1、在虚拟机master上安装配置ZooKeeper
(1)解压zookeeper安装包
执行命令tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local,将zookeeper安装包解压到指定目录
在这里插入图片描述

(2)配置zookeeper环境变量
执行命令:vim /etc/profile
在这里插入图片描述

存盘退出,执行命令:source /etc/profile,让环境配置生效
在这里插入图片描述

(3)创建zookeeper数据目录
进入zookeeper安装目录,创建ZkData子目录
在这里插入图片描述

(4)编辑zookeeper配置文件
进入zookeeper配置目录conf,复制zoo_sample.cfg到zoo.cfg
在这里插入图片描述

执行命令:vim zoo.cfg,修改zoo.cfg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值