文章目录
- 前言
- Zookeeper集群搭建
- (一)Leader+Follower模式
- (二)下载zookeeeper的压缩包
- (三)解压
- (四)修改配置文件
- (五)添加myid配置
- (六)安装包分发并修改myid的值
- (七)配置Path环境变量
- (八)三台机器启动zookeeper服务
- 总结
前言
#博学谷IT学习技术支持#
本篇文章主要介绍Zookeeper集群所需的环境,以及集群搭建流程。
Zookeeper集群搭建
Zookeeper集群搭建指的是ZooKeeper分布式模式安装,通常由2n+1台server组成。这是为了保证Leader选举能够得到多数的支持,所以ZooKeeper集群的数量一般为奇数。
Zookeeper运行需要java环境,需要提前好安装jdk,我们本次主要安装leader+follower模式的集群,大致过程如下:
- 配置主机名称到IP地址映射配置
- 修改ZooKeeper配置文件
- 远程复制分发安装文件
- 设置myid
- 启动ZooKeeper集群
(一)Leader+Follower模式
(二)下载zookeeeper的压缩包
下载网址为:http://archive.apache.org/dist/zookeeper/,我们下载的zk版本为3.4.6,下载完成后上传到linux系统的/export/software路径下准备进行安装
(三)解压
在node1主机上,解压zookeeper的压缩包到/export/server路径下去,然后准备进行安装
cd /export/software
tar -zxvf zookeeper-3.4.6.tar.gz -C /export/server/
(四)修改配置文件
在node1主机上,修改配置文件
cd /export/server/zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
mkdir -p /export/server/zookeeper-3.4.6/zkdatas/
vim zoo.cfg
修改以下内容:
#Zookeeper的数据存放目录
dataDir=/export/server/zookeeper-3.4.6/zkdatas
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
(五)添加myid配置
在node1主机的/export/server/zookeeper-3.4.6/zkdatas/这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /export/server/zookeeper-3.4.6/zkdatas/myid
(六)安装包分发并修改myid的值
在node1主机上,将安装包分发到其他机器;
node1上执行以下两个命令:
scp -r /export/server/zookeeper-3.4.6/ node2:/export/server/
scp -r /export/server/zookeeper-3.4.6/ node3:/export/server/
node2上修改myid的值为2
echo 2 > /export/server/zookeeper-3.4.6/zkdatas/myid
node3上修改myid的值为3
echo 3 > /export/server/zookeeper-3.4.6/zkdatas/myid
(七)配置Path环境变量
1、分别在node1,node2和node3三台集群上,修改/etc/proflie,添加以下内容:
export ZOOKEEPER_HOME=/export/server/zookeeper-3.4.6
export PATH=:$ZOOKEEPER_HOME/bin:$PATH
2、分别在三台主机中使用以下命令刷新环境变量配置档案
source /etc/profile
(八)三台机器启动zookeeper服务
启动zookeeper服务,确认集群是否安装成功,分别三台机器中执行一下shell命令启动zookeeper服务:
zkServer.sh start
三台主机都启动完成后分别查看启动状态
zkServer.sh status
总结
Zookeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题。其本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控存储的数据的状态变化,从而实现基于数据的集群管理。