下载
链接: https://www.apache.org/dyn/closer.cgi/zookeeper/
安装
解压缩包即可
单节点运行
参考官网教程:在conf目录新建zoo.cfg,添加如下内容
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
然后执行命令,后台运行 sudo bin/zkServer.sh start
客户端使用
执行命令 bin/zkCli.sh -server 127.0.0.1:2181
进入客户端
执行命令 help
查看shell自带哪些命令
创建、查看、更新、删除节点:
复制模式(仲裁模式)
什么是复制模式,大概意思就是在一台机器上运行多个zk服务。过程还是比较简单的(哈哈~~)只看不动手操作的话,还是有点晕的啊。
下面就跟着我的步伐,一二一走起….
首先:将conf/zoo.cfg复制三份,重命名为zoo1.cfg,zoo2.cfg.zoo3.cfg。
看仔细了,下面要把三份配置文件贴出来了哦(因为三份文件长得差不多,我就只介绍zoo1.cfg就行了,不同的地方我用红框框框出来了哈)
zoo1.cfg
zoo2.cfg
zoo3.cfg
注意红框框,dataDir表示数据存储路径,三份配置文件都要不一样哦。另外clientPort也要不一样,一样的话就要打架了哈。
注意红圆圈里的1 2 3 。后面再讲啦,大概意思就是表示服务1,2,3.(反正我是这样理解的)
好了,既然要数据存储路径,那我们就来创建吧
mkdir -p data/zoo1/
mkdir -p data/zoo2/
mkdir -p data/zoo3/
创建好了目录后,我们来看看目录情况
夷,myid是什么东东???别急,少年,注意上图zoo1.cfg 红圆圈的server1 2 3没有。OK,注意到了吧。
看下面的命令
echo 1 > data/zoo1/myid
echo 2 > data/zoo2/myid
echo 3 > data/zoo3/myid
就是把标号输出到对应的数据存储目录下的myid文件里啦。再不理解,我也木办法啦,照着做就好啦。
一切准备就绪。开始启动了。
bin/zkServer.sh start conf/zoo1.cfg
bin/zkServer.sh start conf/zoo2.cfg
bin/zkServer.sh start conf/zoo3.cfg
启动完毕!出错了,我不会修复(哈哈哈)
客户端连接
bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
终止服务: bin/zkServer.sh stop conf/zoo1.cfg
bin/zkServer.sh stop conf/zoo2.cfg
bin/zkServer.sh stop conf/zoo3.cfg
分布式安装
集群规划
在node101、node102和node103三个节点上部署Zookeeper。
解压安装
(1)解压Zookeeper安装包到/opt/module/目录下
[twx@node101 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/
(2)同步/opt/module/zookeeper-3.4.10目录内容到node102、node103
[twx@node101 module]$ xsync zookeeper-3.4.10/
配置服务器编号
(1)在/opt/module/zookeeper-3.4.10/这个目录下创建zkData
[twx@node101 zookeeper-3.4.10]$ mkdir -p zkData
(2)在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件
[twx@node101 zkData]$ touch myid
添加myid文件,注意一定要在linux里面创建
(3)编辑myid文件
[twx@node101 zkData]$ vi myid
在文件中添加与server对应的编号:
1
(4)拷贝配置好的zookeeper到其他机器上
[twx@node101 zkData]$ xsync myid
并分别在node102、node103上修改myid文件中内容为2、3
配置zoo.cfg文件
(1)重命名/opt/module/zookeeper-3.4.10/conf这个目录下的zoo_sample.cfg为zoo.cfg
[twx@node101 conf]$ mv zoo_sample.cfg zoo.cfg
(2)打开zoo.cfg文件
[twx@node101 conf]$ vim zoo.cfg
修改数据存储路径配置
dataDir=/opt/module/zookeeper-3.4.10/zkData
增加如下配置
#######################cluster##########################
server.1=node101:2888:3888
server.2=node102:2888:3888
server.3=node103:2888:3888
3)同步zoo.cfg配置文件
[twx@node101 conf]$ xsync zoo.cfg
启动
[twx@node101 zookeeper-3.4.10]$ bin/zkServer.sh start [twx@node102 zookeeper-3.4.10]$ bin/zkServer.sh start [twx@node103 zookeeper-3.4.10]$ bin/zkServer.sh start
启动、停止脚本 zk.sh
#! /bin/bash
case $1 in
"start"){
for i in node101 node102 node103
do
ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
done
};;
"stop"){
for i in node101 node102 node103
do
ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
done
};;
"status"){
for i in node101 node102 node103
do
ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh status"
done
};;
esac