上传安装包(zookeeper-3.4.6.tar.gz)到集群服务器
解压
修改配置文件
进入zookeeper的安装目录的conf目录
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/root/zkdata
clientPort=2181
#autopurge.purgeInterval=1
server.1=hdp20-01:2888:3888
server.2=hdp20-02:2888:3888
server.3=hdp20-03:2888:3888
配置文件修改完后,将安装包拷贝给hdp-02 和 hdp-03
scp -r zookeeper-3.4.6/ hdp20-02$PWD
scp -r zookeeper-3.4.6/ hdp20-03:$PWD
- 接着,到hdp-01上,新建数据目录/root/zkdata,并在目录中生成一个文件myid,内容为1
- 接着,到hdp-02上,新建数据目录/root/zkdata,并在目录中生成一个文件myid,内容为2
- 接着,到hdp-03上,新建数据目录/root/zkdata,并在目录中生成一个文件myid,内容为3
单个启动zookeeper集群
zookeeper没有提供自动批量启动脚本,需要手动一台一台地起zookeeper进程
在每一台节点上,运行命令:
bin/zkServer.sh start
启动后,用jps应该能看到一个进程:QuorumPeerMain
但是,光有进程不代表zk已经正常服务,需要用命令检查状态:
bin/zkServer.sh status
能看到角色模式:为leader或follower,即正常了。
批量启动zookeeper集群
编写脚本
vim zkmanage.sh
#!/bin/bash
for host in hdp-01 hdp-02 hdp-03
do
echo "${host}:${1}ing......"
ssh $host "source /etc/profile; /root/apps/zookeeper-3.4.6/bin/zkServer.sh $1"
done
sleep 2
for host in hdp-01 hdp-02 hdp-03
do
ssh $host "source /etc/profile; /root/apps/zookeeper-3.4.6/bin/zkServer.sh status"
done
启动
sh zkmanage.sh strart
停止
sh zkmanage.sh stop
zookeeper服务端命令:
启动ZK服务: bin/zkServer.sh start
查看ZK服务状态: bin/zkServer.sh status
停止ZK服务: bin/zkServer.sh stop
重启ZK服务: bin/zkServer.sh restart
zookeeper客户端命令:
启动命令:sh zkCli.sh
连接其他客户端:sh zkCli.sh -server ip:port