伪分布安装zookeeper
伪分布式安装zookeeper
在同一台服务器上启动多个zk服务。
上传安装包
使用XFTP或者使用scp将安装包apache-zookeeper-3.6.3-bin.tar.gz上传到/root/softwares下
解压安装
cd softwares/
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /usr/local
更名
mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3
复制三份
cp -r zookeeper-3.6.3 /usr/local/zookeeper01
cp -r zookeeper-3.6.3 /usr/local/zookeeper02
cp -r zookeeper-3.6.3 /usr/local/zookeeper03
新建myid文件
mkdir {dataDir,dataLogDir} #zookeeper01,zookeeper02,zookeeper03都要创建
cd dataDir/
vim myid
echo "1" > /usr/local/zookeeper01/dataDir/myid
echo "2" > /usr/local/zookeeper02/dataDir/myid
echo "3" > /usr/local/zookeeper03/dataDir/myid
配置zoo.cfg文件
配置zookeeper01的zoo.cfg
cd /usr/local/zookeeper01/conf
cp /usr/local/zookeeper01/conf/zoo_sample.cfg zoo.cfg
vim /usr/local/zookeeper01/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper01/dataDir
dataLogDir=/usr/local/zookeeper01/dataLogDir
clientPort=2181
server.1=192.168.239.239:2888:3888
server.2=192.168.239.239:2889:3889
server.3=192.168.239.239:2890:3890
配置zookeeper02的zoo.cfg文件
cd /usr/local/zookeeper02/conf
cp /usr/local/zookeeper02/conf/zoo_sample.cfg zoo.cfg
vim /usr/local/zookeeper02/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper02/dataDir
dataLogDir=/usr/local/zookeeper02/dataLogDir
clientPort=2182
server.1=192.168.239.239:2888:3888
server.2=192.168.239.239:2889:3889
server.3=192.168.239.239:2890:3890
配置zookeeper03的zoo.cfg文件
cd /usr/local/zookeeper03/conf
cp /usr/local/zookeeper03/conf/zoo_sample.cfg zoo.cfg
vim /usr/local/zookeeper03/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper03/dataDir
dataLogDir=/usr/local/zookeeper03/dataLogDir
clientPort=2183
server.1=192.168.239.239:2888:3888
server.2=192.168.239.239:2889:3889
server.3=192.168.239.239:2890:3890
启动集群
后台启动zookeeper01的zoo.cfg服务端
cd /usr/local/zookeeper01/bin/
./zkServer.sh start # 启动第一个节点
netstat -lntp |grep java # 查看监听的端口
后台启动zookeeper02的zoo.cfg服务端
cd /usr/local/zookeeper02/bin/
./zkServer.sh start # 启动第二个节点
netstat -lntp |grep java # 查看监听的端口
后台启动zookeeper03的zoo.cfg服务端
cd /usr/local/zookeeper03/bin/
./zkServer.sh start # 启动第三个节点
netstat -lntp |grep java # 查看监听的端口
myid文件一定要在dataDir的文件目录下,否则启动会报myid文件缺失异常!!!
查看进程
jps
[root@hadoop bin]# jps
13889 QuorumPeerMain
14002 QuorumPeerMain
14073 QuorumPeerMain
14122 Jps
启动完后依次查看集群的状态、主从信息
/usr/local/zookeeper01/bin/zkServer.sh status
/usr/local/zookeeper02/bin/zkServer.sh status
/usr/local/zookeeper03/bin/zkServer.sh status
一定要全部启动后按顺序启动集群
脚本启动
vim checked.sh # 脚本内容如下
#!/bin/bash
/usr/local/zookeeper01/bin/zkServer.sh status
/usr/local/zookeeper02/bin/zkServer.sh status
/usr/local/zookeeper03/bin/zkServer.sh status
sh ./checked.sh # 执行脚本
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper01/bin/../conf/zoo.cfg
Mode: follower # 从节点
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper02/bin/../conf/zoo.cfg
Mode: leader # 主节点
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper03/bin/../conf/zoo.cfg
Mode: follower
关闭zookeeper
/usr/local/zookeeper01/bin/zkServer.sh stop
/usr/local/zookeeper02/bin/zkServer.sh stop
/usr/local/zookeeper03/bin/zkServer.sh stop