上传安装包(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