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容器。得到镜像,放置数据丢失