Zookeeper概述
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等
工作机制
领导者(leader),负责进行投票的发起和决议,更新系统状态
学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并给客户端返回结果,在选主过程中参与投票 Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过 程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度
客户端(client),请求发起方
zookeeper的应用场景
统一命名服务、统一的配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等
Zookeeper的下载与安装
我是在我的三台结点上方都安装了Zookeeper
链接:https://pan.baidu.com/s/1h9EPReCFmNtH9lRsi4NGRg
提取码:8520
配置安装
[root@node01 Zookeeper]# tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz
文件夹重命名
[root@node01 Zookeeper]#
mv apache-zookeeper-3.5.5-bin zookeeper-3.5.5
编辑一下conf下的zoo.sample.cfg
[root@node01 Zookeeper]#
cd zookeeper-3.5.5
[root@node01 zookeeper-3.5.5]#
cd conf
[root@node01 conf]#
mv zoo_sample.cfg zoo.cfg
[root@node01 conf]#
vim 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=/opt/apps/zookeeper-3.5.7/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#######################cluster##########################
server.1=node04:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
创建data文件夹,在文件夹下新建文件写入id号
[root@node01 Zookeeper]#
mkdir data
cd data/
vim myid
写入id数字即可
修改环境变量
[root@node01 Zookeeper]# vi /etc/profile
#Zookeeper配置
export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使环境变量生效
[root@node01 Zookeeper]#
source /etc/profile
简单操作
启动zookeeper服务
[root@node01 Zookeeper]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/SoftWare/Zookeeper/zookeeper-3.5.5/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
查看进程
[root@node01 Zookeeper]# jps
1777 ResourceManager
9987 QuorumPeerMain
1413 NameNode
10006 Jps
1614 SecondaryNameNode
#查看服务状态
[root@node01 Zookeeper]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/SoftWare/Zookeeper/zookeeper-3.5.5/bin/…/conf/zoo.cfg
Mode: standalone
启动客户端
[root@node01 Zookeeper]# zkCli.sh
#退出客户端
[zk: localhost:2181(CONNECTED) 1] quit
停止zookeeper服务器端
[root@node01 Zookeeper]# zkServer.sh stop