选举模式和Zookeeper的集群安装
zk集群,主从节点,心跳机制(选举模式)
集群搭建注意点
配置数据文件 myid 1/2/3 对应 server.1/2/3
通过 ./zkCli.sh -server [ip]:[port] 检测集群是否配置成功
单机伪分布式集群
修改 zoo.cfg,添加下面信息,ip为当前ip,可以通过ifconfig查到,server后的1表示myid为1,第一个端口号为同步信息,第二个端口号为选举用到的
server.1=172.16.59.236:2888:3888
server.2=172.16.59.236:2889:3889
server.3=172.16.59.236:2890:3890
进入dataDir目录,添加myid文件,内容为1,保存退出
[root@Manka zookeeper]# cd dataDir/
[root@Manka dataDir]# ls
version-2 zookeeper_server.pid
[root@Manka dataDir]# vim myid
进入zookeeper02目录,修改zoo.cfg内容,包括端口号,dataDir,dataLogDir
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper02/dataDir
dataLogDir=/usr/local/zookeeper02/dataDir
# the port at which the clients will connect
clientPort=2182
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure toaread 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
4lw.commands.whitelist=*
server.1=172.16.59.236:2888:3888
server.2=172.16.59.236:2889:3889
server.3=172.16.59.236:2890:3890
进入dataDir目录,添加myid文件,内容为2,保存退出
[root@Manka zookeeper02]# cd dataDir
[root@Manka dataDir]# ls
version-2 zookeeper_server.pid
[root@Manka dataDir]# vim myid
进入第三台节点 zookeeper03,步骤跟第二台类同,端口号,dataDir,dataLogDir,myid,都改成后缀为3
进入/usr/local/zookeeper/bin目录
开启zookeeper
[root@Manka bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
开启zookeeper02和zookeeper03
[root@Manka bin]# cd /usr/local/zookeeper02/bin
[root@Manka bin]# ll
total 48
-rwxr-xr-x 1 root root 232 Dec 4 21:23 README.txt
-rwxr-xr-x 1 root root 1937 Dec 4 21:23 zkCleanup.sh
-rwxr-xr-x 1 root root 1056 Dec 4 21:23 zkCli.cmd
-rwxr-xr-x 1 root root 1534 Dec 4 21:23 zkCli.sh
-rwxr-xr-x 1 root root 1628 Dec 4 21:23 zkEnv.cmd
-rwxr-xr-x 1 root root 2696 Dec 4 21:23 zkEnv.sh
-rwxr-xr-x 1 root root 1089 Dec 4 21:23 zkServer.cmd
-rwxr-xr-x 1 root root 6863 Dec 4 21:23 zkServer.sh
-rw-r--r-- 1 root root 11892 Dec 4 21:23 zookeeper.out
[root@Manka bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper02/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@Manka bin]# cd /usr/local/zookeeper03/bin
[root@Manka bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper03/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
连接第一个节点,新建测试数据
[root@Manka bin]# ./zkCli.sh -server localhost:2181
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1] create /data 123
Created /data
[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper, data]
按ctrl + c 键退出客户端,进入第二个节点,成功获取data数据
[zk: localhost:2181(CONNECTED) 3] [root@Manka bin]# ./zkCli.sh -server localhost:2182
[zk: localhost:2182(CONNECTED) 0] get /data
123
cZxid = 0x100000002
ctime = Tue Dec 04 21:51:17 CST 2018
mZxid = 0x100000002
mtime = Tue Dec 04 21:51:17 CST 2018
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
真实环境集群搭建
需要注意:环境变量的配置,ip配置不同,端口号可以相同
克隆三台linux操作系统,在伪分布式的前提下修改,每台操作系统保留一个zookeeper,删除另外两个,第一台保留zookeeper,第二胎保留zookeeper02,第三台保留zookeeper03, 修改在/etc/profile 里的zookeeper相应的安装文件名
修改配置文件
zoo.cfg的ip不一样,两个端口号上下都保持一致,clientPort=2181(都是),myid分别是1, 2, 3
server.1=172.16.59.236:2888:3888
server.2=172.16.59.237:2888:3888
server.3=172.16.59.238:2888:3888
集群测试,选举测试