关键字:Linux CentOS Zookeeper JAVA
版本号:CentOS7 Zookeeper3.4.10 JDK1.8
说明:在每个机器上安装zookeeper,然后在稍微修改一下配置,就构成了集群,单机安装zookeeper并且设置为开机启动请参考该博文
http://blog.csdn.net/pucao_cug/article/details/71240246
1对Zookeeper集群进行配置
在hserver1、hserver2、hserver3这3太机器上都安装了zookeeper后(开机启动不是必须的),按照下面的步骤操作即可。
1.1创建对应的目录和文件
1.1.1创建目录
在hserver1、hserver2、hserver3这3台机器上执行命令创建两个目录:
mkdir /opt/zookeeper/data
mkdir /opt/zookeeper/dataLog
创建完成后,如图:
1.1.2 创建myid文件
在hserver1、hserver2、hserver3这3台机器的/opt/zookeeper/data目录内都创建一个名为myid的文件
如图:
将hserver1机器上的/opt/zookeeper/data/myid文件的内容编辑为1
如图:
将hserver2机器上的/opt/zookeeper/data/myid文件的内容编辑为2
如图:
将hserver3机器上的/opt/zookeeper/data/myid文件的内容编辑为3
如图:
说明:上面新建的目录可以不和我一样,myid中的数字编号也可以不一样,只要和下面1.2中的zoo.cfg的配置对应即可,但是建成一样也无妨。
1.2修改配置文件zoo.cfg
把集群内的zookeeper的zoo.cfg配置文件都修改成一样的内容,主要是在末尾增加配置:
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/dataLog
server.1=hserver1:2888:3888
server.2=hserver2:2888:3888
server.3=hserver3:2888:3888
我自己的zoo.cfg文件内容是:
# The number ofmilliseconds of each tick
tickTime=2000
# The number ofticks that the initial
#synchronization phase can take
initLimit=10
# The number ofticks that can pass between
# sending arequest and getting an acknowledgement
syncLimit=5
# the directorywhere the snapshot is stored.
# do not use /tmpfor storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port atwhich the clients will connect
clientPort=2181
# the maximumnumber of client connections.
# increase thisif you need to handle more clients
#maxClientCnxns=60
#
# Be sure toread the maintenance section of the
# administratorguide before turning on autopurge.
#
#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number ofsnapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge taskinterval in hours
# Set to"0" to disable auto purge feature
#autopurge.purgeInterval=1
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/dataLog
server.1=hserver1:2888:3888
server.2=hserver2:2888:3888
server.3=hserver3:2888:3888
说明:dataDir和dataLogDir需要自己创建,目录可以自己制定,对应即可。server.1中的这个1需要和hserver1这个机器上的dataDir目录中的myid文件中的数值对应。server.2中的这个2需要和hserver2这个机器上的dataDir目录中的myid文件中的数值对应。server.3中的这个3需要和hserver3这个机器上的dataDir目录中的myid文件中的数值对应。当然,数值你可以随便用,只要对应即可。2888和3888的端口号也可以随便用,因为在不同机器上,用成一样也无所谓。
2 启动和测试集群
2.1 启动zookeeper集群
如果想要开机启动,请参考该博文http://blog.csdn.net/pucao_cug/article/details/71240246
第三章的内容( 集群中每台机器都设置为开机启动,那么也就相当于是开机启动了)。
下面的步骤是手动启动zookeeper的步骤。
分别在3台机器上执行下面的命令,启动机器上安装的zookeeper,hserver1、hserver2、hserver3的启动顺序无关紧要,也没必要说一台启动完成后在去启动另外一台,随意就行,没有关系的。
执行启动的命令是:
/opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
hserver1机器
如图:
hserver2机器
如图:
hserver3机器
如图:
2.2 测试
查看zookeeper集群中的zookeeper节点的状态,会发现其中一个是leader,其余是follower。分别在3台机器上执行命令查看zookkeeper状态。按下面步骤操作:
在hserver1上执行命令:
/opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
如图:
文本是:
[root@hserver1 ~]#/opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config:/opt/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
[root@hserver1 ~]#
在hserver2上执行命令:
/opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
如图:
文本是:
[root@hserver2 ~]#/opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config:/opt/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
[root@hserver2 ~]#
在hserver3上执行命令:
/opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
如图:
文本是:
[root@hserver3~]# /opt/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config:/opt/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
[root@hserver3 ~]#