注意
避免今后与已知的端口冲突尽量选择10000后的端口
ID | 节点主机名 | 集群选举接口 | 集群广播接口 | 客户端连接端口 |
---|---|---|---|---|
1 | node1 | 10010 | 10011 | 10012 |
2 | node2 | 10020 | 10021 | 10022 |
3 | node3 | 10030 | 10031 | 10032 |
下载Zookeeper
cd /usr/local/share wget https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
解压文件
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
创建三个节点的配置
cd apache-zookeeper-3.6.3-bin # 拷贝配置文件 cp -r conf/ conf1/ cp -r conf/ conf2/ cp -r conf/ conf3/ # 创建数据文件夹 mkdir -p data/zk1 mkdir -p data/zk2 mkdir -p data/zk3 # 编写配置文件 vim conf1/zoo_sample.cfg
# 更改文本如下 # session的会话时间 以ms为单位 tickTime=2000 # 服务器启动以后,通讯的时间 initLimit=10 #心跳检测时间,检测slave是否存活 syncLimit=5 #(这个目录可以自行指定) dataDir=../data/zk1 dataLogDir=../data/logs #客户端访问zk的端口 clientPort=10012 #域名可使用在hosts里面配置的主机映射 第一个端口是数据同步和消息传递端口,第二个是选举端口 server.1=127.0.0.1:10011:10010 server.2=127.0.0.1:10021:10020 server.3=127.0.0.1:10031:10030 #EOF
同理修改conf2
和conf3
中的cfg后缀文件。具体内容如下图(乱码待修改:MobaXterm文件编码问题)
# 修改文件名 mv conf1/zoo_sample.cfg conf1/zoo.cfg mv conf2/zoo_sample.cfg conf2/zoo.cfg mv conf3/zoo_sample.cfg conf3/zoo.cfg
添加每个节点的ID,注意要与cfg文件中的server.id
相匹配
echo 1 >> data/zk1/myid echo 2 >> data/zk2/myid echo 3 >> data/zk3/myid
# /bin目录下,config自动识别目录下的zoo.cfg文件作为配置文件。 ./zkServer.sh --config ../conf1/ start ./zkServer.sh --config ../conf2/ start ./zkServer.sh --config ../conf3/ start
查询集群状态,其中zk2是Master节点
./zkServer.sh status ../conf1/zoo.cfg ./zkServer.sh status ../conf2/zoo.cfg ./zkServer.sh status ../conf3/zoo.cfg
# /zookeeper/bin目录下 #启动节点 ./zkServer.sh start ../conf3/zoo.cfg ./zkServer.sh start --config ../conf1/ #查询状态 ./zkServer.sh status ../conf1/zoo.cfg #关闭节点 ./zkServer.sh stop ../conf3/zoo.cfg