zookeeper概念和部署

时间:2022-09-16 21:57:28

1.Zookeeper概念简介

Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务
A、zookeeper是为别的分布式程序服务的
B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)
C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务……
D、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:
1.管理(存储,读取)用户程序提交的数据
2.并为用户程序提供数据节点监听服务

Zookeeper集群的角色: Leader 和 follower (Observer) 只要集群中有半数以上节点存活,集群就能提供服务

所以zookeeper适合装在奇数台机器上!!!

2.zookeeper集群安装

2.1 前置条件

奇数台计算机或虚拟机(这里使用docker) 安装好jdk(docker exec进入docker.并安装好jdk)

2.2 下载并解压zookeeper

ps:这里以zookeeper-3.4.5.tar.gz为例

tar -zxvf zookeeper-3.4.5.tar.gz -C /etc/local/
cd /etc/local
mv zookeeper-3.4.5 zookeeper

2.3 修改环境变量(配置文件不要放在/etc/profile下面.因为docker启动是bash而不是login shell,不会自动加载/etc/profile)

vim /etc/bashrc

增加以下变量:

export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

最后

source /etc/profile

2.4 修改配置

cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

增加如下内容:

dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

创建文件夹:

cd /usr/local/zookeeper/
mkdir -m 755 data
mkdir -m 755 log

在data文件夹下新建myid文件

cd data
vi myid

增加内容:

1

2.4 分发到其他集群中(其他集群配置PATH也可以分发/etc/profile)

scp -r /usr/local/zookeeper root@zk2:/usr/local/
scp -r /usr/local/zookeeper root@zk3:/usr/local/

2.5 修改所有集群中的myid

到zk2上:修改myid为:2
到zk3上:修改myid为:3

2.6 启动(每台机器)

zkServer.sh start

2.7 查看集群状态

jps
zkServer.sh status(查看集群状态,主从信息)

当然,最终运行在容器之中.可以commit容器。得到镜像,放置数据丢失