Zookeeper集群搭建 & 数据同步性测试

Zookeeper集群搭建 & 启动

Zookeeper解压安装 & 环境变量配置

[root@hadoop001 home]# tar zxvf zookeeper-3.4.9.tar.gz
[root@hadoop001 home]# cd zookeeper-3.4.9
[root@hadoop001 zookeeper-3.4.9]# vi /etc/profile 
#set zookeeper environment
export ZOOKEEPER_HOME=/home/zookeeper-3.4.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

Zookeeper配置

[root@hadoop001 zookeeper-3.4.9]# cd conf
[root@hadoop001 conf]# ll
total 12
-rw-rw-r--. 1 1001 1001  535 Aug 23  2016 configuration.xsl
-rw-rw-r--. 1 1001 1001 2161 Aug 23  2016 log4j.properties
-rw-rw-r--. 1 1001 1001  922 Aug 23  2016 zoo_sample.cfg
[root@hadoop001 conf]# cp zoo_sample.cfg zoo.cfg
配置文件解读:
    # Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳
    # 即每2秒就做一次心跳同步
    tickTime=2000

    # Zookeeper有2个角色:follower和leader
    # 集群中的follower与leader之间 初始连接 时能容忍的最多心跳数(tickTime的数量)
    # 此配置表示,允许follower连接并同步到leader的初始化连接时间,它以tickTime的倍数来表示
    # 当超过设置倍数的tickTime时间,则连接失败
    initLimit=10

    # 集群中的follower与leader之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)
    # 此配置表示,leader与follower之间发送消息, 请求 和 应答  时间长度。
    # 如果follower在设置的时间内不能与leader进行通信,那么此follower将被丢弃。
    syncLimit=5

    # 数据目录
    dataDir=/home/zookeeper-3.4.9/data

    # 客户端端口
    clientPort=2181

    # Zookeeper的server节点
    # 需要配置ZK的服务端口和ZK的选举端口(因为选举服务和通信服务是分别占用2个端口的)
    # 服务端口:2888   选举端口:3888
    server.1=192.168.26.191:2888:3888
    server.2=192.168.26.192:2888:3888
    server.3=192.168.26.193:2888:3888

创建ZK的唯一标识(根据ZK的官网,这个唯一标识只能是myid),即哪台机子是第一个节点、哪台机子是第二个节点..

[root@hadoop001 conf]# cd ..
[root@hadoop001 zookeeper-3.4.9]# mkdir data
[root@hadoop001 zookeeper-3.4.9]# cd data/
[root@hadoop001 data]# echo "1" > myid

分发

[root@hadoop001 home]# scp -r /home/zookeeper-3.4.9 [email protected]:/home
[root@hadoop001 home]# scp -r /home/zookeeper-3.4.9 [email protected]:/home
[root@hadoop001 zookeeper-3.4.9]# scp -r /etc/profile [email protected]:/etc/  
[root@hadoop001 zookeeper-3.4.9]# scp -r /etc/profile [email protected]:/etc/

修改第二台机器myid

[root@hadoop002 ~]# cd /home/zookeeper-3.4.9
[root@hadoop002 zookeeper-3.4.9]# cd data/
[root@hadoop002 data]# vi myid 
2

修改第三台机器myid

[root@hadoop003 ~]# cd /home/zookeeper-3.4.9/data/
[root@hadoop003 data]# vi myid 
3

启动Zookeeper集群:

[root@hadoop001 zookeeper-3.4.9]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED  

[root@hadoop002 zookeeper-3.4.9]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[root@hadoop003 zookeeper-3.4.9]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看Zookeeper状态:

[root@hadoop001 zookeeper-3.4.9]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower

[root@hadoop002 zookeeper-3.4.9]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower

[root@hadoop003  zookeeper-3.4.9]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader

使用zkCli.sh验证Zookeeper的数据同步性

数据同步的测试

数据创建:
192.168.26.191机器的操作:

[zk: localhost:2181(CONNECTED) 2] create /my hello
Created /my
[zk: localhost:2181(CONNECTED) 4] get /my
hello
cZxid = 0x200000004
ctime = Mon May 14 02:38:45 CST 2018
mZxid = 0x200000004
mtime = Mon May 14 02:38:45 CST 2018
pZxid = 0x200000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

数据同步到192.168.26.192机器上了:

[zk: localhost:2181(CONNECTED) 1] get /my
hello
cZxid = 0x200000004
ctime = Mon May 14 02:38:45 CST 2018
mZxid = 0x200000004
mtime = Mon May 14 02:38:45 CST 2018
pZxid = 0x200000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

数据同步到192.168.26.193机器上了:

扫描二维码关注公众号,回复: 1035867 查看本文章
[zk: localhost:2181(CONNECTED) 1] get /my
hello
cZxid = 0x200000004
ctime = Mon May 14 02:38:45 CST 2018
mZxid = 0x200000004
mtime = Mon May 14 02:38:45 CST 2018
pZxid = 0x200000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5

数据修改:
在192.168.26.193机器上修改数据:

[zk: localhost:2181(CONNECTED) 2] set /my 123
cZxid = 0x200000004
ctime = Mon May 14 02:38:45 CST 2018
mZxid = 0x200000005
mtime = Mon May 14 02:42:17 CST 2018
pZxid = 0x200000004
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

数据同步到192.168.26.192机器上了:

[zk: localhost:2181(CONNECTED) 2] get /my
123
cZxid = 0x200000004
ctime = Mon May 14 02:38:45 CST 2018
mZxid = 0x200000005
mtime = Mon May 14 02:42:17 CST 2018
pZxid = 0x200000004
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

数据同步到192.168.26.191机器上了:

[zk: localhost:2181(CONNECTED) 5] get /my
123
cZxid = 0x200000004
ctime = Mon May 14 02:38:45 CST 2018
mZxid = 0x200000005
mtime = Mon May 14 02:42:17 CST 2018
pZxid = 0x200000004
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

猜你喜欢

转载自blog.csdn.net/lemonzhaotao/article/details/80369207
今日推荐