zookeeper伪集群

伪分布式集群:在一台Server中,启动多个ZooKeeper的实例。apache

下面来看看zookeeper怎么进行安装的吧。vim

下载

选择一个稳定版本进行下载,我这里下载的是zookeeper-3.4.6版本。服务器

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

解压

tar -zxvf  zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6/conf
#复制三份zookeeper配置文件
cp zoo_sample.cfg zoo1.cfg
cp zoo_sample.cfg zoo2.cfg
cp zoo_sample.cfg zoo3.cfg

修改配置

#zoo1.cfg
tickTime=2000  
dataDir=/usr/local/zookeeper-3.4.6/data/zk1
clientPort=2181  
initLimit=10  
syncLimit=5  
server.1=127.0.0.1:2881:3881  
server.2=127.0.0.1:2882:3882  
server.3=127.0.0.1:2883:3883
#zoo2.cfg
tickTime=2000 
dataDir=/usr/local/zookeeper-3.4.6/data/zk2
clientPort=2182
initLimit=10 
syncLimit=5 
server.1=127.0.0.1:2881:3881 
server.2=127.0.0.1:2882:3882 
server.3=127.0.0.1:2883:3883
#zoo3.cfg
tickTime=2000
dataDir=/usr/local/zookeeper-3.4.6/data/zk3
clientPort=2183
initLimit=10
syncLimit=5
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

解释:分布式

  • dataDir定义zookeeper实例存储持久出具的本地文件系统位置spa

  • clientPort定义zookeeper客户端链接zookeeper服务端时使用的端口日志

  • server定义zookeeper集群的各个实例的ip和端口server

  • tickTime进程

    指定了zookeeper中的基本时间单元(以毫秒为单位)ip

    zookeeper集群中,每一个服务器都有一个id(数字),服务器id在集群中是惟一的,而且取值范围是1~255,经过一个名为myid的纯文本设置,这个文件保存在dataDir中get

  • server.n=hostname:port:portn是服务器id,第一个port是follower用来链接leader的端口,第二个port是用于leader选举

  • clientPort监听client链接的端口号

  • initLimit设定了全部follower与leader进行链接并同步的时间范围。若是在设定的时间段内,半数以上的follower跟随者未能完成同步,leader会宣布放弃领导地位,而后进行另一次leader选举,若是这种状况常常发生,则代表设定的值过小

  • syncLimit设定了容许一个follower与leader这进行同步的时间。若是在设定的时间段内,一个follower未能完成同步,会本身重启,全部关联到follower的客户端将链接到另外一个follower

建立dataDir和实例id文件
mkdir -p /usr/local/zookeeper/zk1/data  
mkdir -p /usr/local/zookeeper/zk2/data  
mkdir -p /usr/local/zookeeper/zk3/data  
#zoo1.cfg
vim /usr/local/zookeeper/zk3/data/myid #输入1
#zoo2.cfg
vim /usr/local/zookeeper/zk3/data/myid #输入2
#zoo3.cfg
vim /usr/local/zookeeper/zk3/data/myid #输入3

启动zookeeper服务

bin/zkServer.sh start ../conf/zoo1.cfg
bin/zkServer.sh start ../conf/zoo2.cfg
bin/zkServer.sh start ../conf/zoo3.cfg
#查看zookeeper 服务角色状态,[follower,leader]
bin/zkServer.sh status ../conf/zoo1.cfg 
bin/zkServer.sh status ../conf/zoo2.cfg 
bin/zkServer.sh status ../conf/zoo3.cfg

 

查看是否启动成功

jps

看到相似下面的进程就表示3个实例均启动成功

13419 QuorumPeerMain

13460 QuorumPeerMain

13561 Jps

13392 QuorumPeerMain

若是未成功启动,能够到zookeeper.out文件中查看启动失败的日志信息。

客户端链接

./zkCli.sh -server 127.0.0.1:2181

关闭zookeeper

bin/zkServer.sh stop ../conf/zoo1.cfg
bin/zkServer.sh stop ../conf/zoo2.cfg
bin/zkServer.sh stop ../conf/zoo3.cfg
相关文章
相关标签/搜索