一.单机部署:
①下载、解压
http://archive.apache.org/dist/zookeeper/
tar -zxf zookeeper-3.4.10.tar.gz -C /usr/local/install
②配置
在主目录下创建data和logs两个目录用于存储数据和日志:
cd /usr/local/install/zookeeper-3.4.10
mkdir data
mkdir logs
在conf目录下新建zoo.cfg文件,写入以下内容保存:
tickTime=2000
dataDir=/usr/myapp/zookeeper-3.4.10/data
dataLogDir=/usr/myapp/zookeeper-3.4.10/logs
clientPort=2181
③启动停止
./zkServer.sh start 启动
./zkServer.sh stop 停止
./zkServer.sh restart 重启
./zkServer.sh status 查看状态
二.伪集群模式安装
这里不做过多解释,有兴趣的朋友可以到网上查阅其它资料
三.集群安装
tar -zxf zookeeper-3.4.10.tar.gz
在zookeeper-3.4.10/conf/
1.修改zoo_sample.cfg文件为zoo.cfg
# The number of milliseconds of each tick #心跳检查时间 tickTime=2000 # The number of ticks that the initial # synchronization phase can take #组成集群心跳次数 initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 #得到响应的最慢心跳次数 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/myapp/zookeeper-3.4.10/data #zk产生数据保存路径 # the port at which the clients will connect clientPort=2181 #客户端连接端口
#集群配置
server.1=192.168.43.15:2888:3888
#服务名=主机名或IP:端口1:端口2
server.2=192.168.43.16:2888:3888
server.3=192.168.43.17:2888:3888
#2888:leader 和follower 之间的通信端口
#3888:当leader宕机后,follower 会通过paxos算法选举出新的leader,即follower之间通信的端口
2.创建myid文件
#在zoo.cfg的dataDir路径下创建myid文件
echo 1 > myid #向文件中添加服务名
分别将zoo.cfg myid 文件拷贝到其它2台机器上,在其它2台机器上将myid 分别改为 2 3
3.启动
bin/zkServer.sh start #启动
bin/zkServer.sh stop #停止
bin/zkServer.sh status 查看当前zk节点是leader/follower
bin/zkCli.sh #查看zk节点
bin/zkCli.sh -timeout 5000 -server 192.168.1.11:2181/kafka
ls / #查看根目录下的文件
rmr /storm #删除根目录下的storm文件夹
#当前zk集群为3台服务时,我们尝试将状态为leader 的服务kill 掉之后,发现zk剩于2台时会及时选举出新的leader,继续对外提供服务,当我们把新的leader 再次kill掉之后,发现仅剩1台的zk是不对外提供服务了。
集群中只要有半数以上节点live,服务就可以正常提供集群中配置服务器节点数量最好是奇数