Zookeeper安装部署

前言

前面我们安装了基本standalone模式的spark集群,它和完全分布式hadoop集群一样,都是master-slaves主从架构的模式,则它们必然会存在单点故障的问题。本文将介绍单点故障的概念和其解决方案,以及如何部署安装一致性服务软件——Zookeeper。

不想看那么多内容的话,直接跳到“四、ZooKeeper部署”环节。

一、什么是单点故障(SPOF)

概念:系统中某个节点发生故障,对整个系统的运行产生影响
如果master所在的节点发生宕机。没有进程来负责集群资源规划,整个集群也就无法获得资源去计算,则整个集群处于停滞状态。

二、如何解决单点故障

对于单点故障问题,standalone集群和hadoop集群一样,采用的方案都是HA模式(High Availability,高可用性),又称负载均衡热备份。本质上就是创建多个master。

作用:系统在发生故障时可以自动恢复到正常状态,以保证系统的可用性和稳定性。

1、hadoop的HA模式

严格来讲分成hdfs的HA 和 yarn的HA两种,都是一种主/从(Master/Slave)模式,其中有一个主节点(Active Node)负责管理整个集群,另一个从节点(Standby Node)作为主节点的备份。当主节点发生故障时,从节点可以立即接管主节点的职责,保证集群的可用性。只有一个节点是active的。

2、spark的HA模式

1)单点恢复
基于文件系统的单点恢复,只用于开发或者测试,较少用到。

2)Standby master with Zookeeper模式
与hadoop的Active-standby模式很类似,都是一种主/从(Master/Slave)模式,存在多个master,但只有一个是active,其余都是standby,适用于生产环境
原理

  1. 最先启动的master节点,能够在zooKeeper注册到临时节点,成为active master,worker再跟zookeeper进行通讯,得知active 状态的master是哪一个节点,再与其通信,组成可用的spark集群。
  2. 当Active master 出现故障时,一直在监控它的standby master 就会在zooKeeper注册属于它自己的临时节点,成为新的active master,然后接管主节点的职责。
  3. 在主节点切换的过程中,存在一段中断期,这段时间内的worker是群龙无首的,正在进行的Job没有影响,但会影响新Job的提交。
    在这里插入图片描述
    (图片来自网络)

三、简单介绍 ZooKeeper

概念:简单来讲,Zookeeper最初是为了解决单点问题而存在的,现已成为分布式的集群化软件,主要为一些分布式软件应用提供一致性协调服务,内容有:配置维护、域名服务、分布式同步、组服务等。
特点:可以在多台服务器上部署,并协同组成分布式集群一起工作。
场景:Hadoop、HBase、spark、Kafka、hive等,比如我们上述的standalone HA模式就需要借用到Zookeeper的leader election(领导选举机制)来选出active master。
关键字:分布式、一致性、协调

四、ZooKeeper部署

在部署之前,请确保你有做好集群化环境的准备,无非就是创建多台虚拟机,主机映射、免密操作、JDK环境、防火墙,快照等操作,这里就不过多赘述了。

小贴士:各位在装某个软件或者进行某项测试时,最好设置快照,以便于你进行失败时可以重回原先状态,否则搞崩之后,你重头再来的成本很高。
使用教程参考如下文章:https://zhuanlan.zhihu.com/p/196701930

1、下载和解压安装包

在node1上执行以下操作

1)进入安装包路径

cd /export/servers/

2)下载和解压

# 下载
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz

# 解压
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz 

#改名
mv apache-zookeeper-3.5.9-bin zookeeper

2、修改配置文件

#进入配置文件地址
cd /export/servers/zookeeper/conf
#修改
vi zoo_sample.cfg zoo.cfg

#确保文件内容与下方一致

tickTime=2000
# zookeeper数据存储目录
dataDir=/export/servers/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

3、配置myid

# 1. 创建Zookeeper的数据目录
mkdir /export/servers/zookeeper/data

# 2. 创建文件,并填入1
vi /export/servers/zookeeper/data/myid
# 在文件内填入1即可,用作zookeeper的编号

4、同步zookeeper

cd /export/servers/

scp -r zookeeper node2:`pwd`/
scp -r zookeeper node2:`pwd`/

5、修改myid

#node2上操作
vi /export/servers/zookeeper/data/myid
# 修改内容为2

#node3上操作
vi /export/servers/zookeeper/data/myid
# 修改内容为3

6、启动zookeeper

#每台机子都要执行
/export/servers/zookeeper/bin/zkServer.sh start    

#检查有无QuorumPeerMain进程生成
jps   

7、验证Zookeeper

在node1上操作

/export/servers/zookeeper/bin/zkCli.sh

# 进入到Zookeeper控制台中后,执行
ls /

# 如无报错即配置成功

其它文章:
Spark环境搭建部署全流程,看这一篇就够了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值