接着上一篇分享,今天我们在服务器上实战演练。

1、准备  node01~node04 四台机器:

zookeeper集群拒绝连接 zookeeper集群使用_服务器

安装了JDK设置环境变量,下载了ZK包,进入主目录。 

2、解压 ZK包 tar xf zookeeper-3.4.6.tar.gz 

zookeeper集群拒绝连接 zookeeper集群使用_配置文件_02

 创建特定目录,把解压后的zk包复制到里面。 

注意:最好不要用yam安装。

3、进入ZK包里面:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_03

继续进入: 

zookeeper集群拒绝连接 zookeeper集群使用_java_04

又进入核心的bin目录,看到如下核心文件。 

4、返回后进入conf目录:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_05

然后复制重命名一个配置文件。 

5、打开配置文件  vi zoo.cfg

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_06

修改了持久化的目录:dataDir

填写服务的配置:

zookeeper集群拒绝连接 zookeeper集群使用_数据_07

 四台服务配置:

server.1=node01:2888:3888

server.2=node02:2888:3888

server.3=node03:2888:3888

server.4=node04:2888:3888

 

6、创建新的目录:mkdir -p /var/mashibing/zk 然后进去

zookeeper集群拒绝连接 zookeeper集群使用_java_08

 

7、创建myid文件:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_09

 编辑添加 1,代表是一号服务器:

zookeeper集群拒绝连接 zookeeper集群使用_数据_10

 

8、然后把此配置复制拷贝到node2服务器:

zookeeper集群拒绝连接 zookeeper集群使用_java_11

输入node2的密码后就行了:

zookeeper集群拒绝连接 zookeeper集群使用_java_12

 出现此现象,证明正在拷贝,结束后可以去node2服务器上看看。

9、node2服务器:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_13

 检查一下:

zookeeper集群拒绝连接 zookeeper集群使用_配置文件_14

 文件和node1完全一致。

10、 查看配置文件:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_15

 编辑myid文件:

zookeeper集群拒绝连接 zookeeper集群使用_数据_16

node2里面的myid数值是 2 

11、文件从node1复制到node3和node4中:

zookeeper集群拒绝连接 zookeeper集群使用_数据_17

 到node4中:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_18

 然后分别在node3和node4中创建myid文件:

zookeeper集群拒绝连接 zookeeper集群使用_java_19

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_20

 查看个服务器的时间 date 命令,时间需要保持统一:

zookeeper集群拒绝连接 zookeeper集群使用_java_21

 12、修改配置文件:vi /etc/profile

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_22

 添加配置:

       export ZOOKEEPER_HOME=/opt/mashibing/zookeeper-3.4.6

       export PATH=$PATH:$ZOOKEEPER_HOME/bin

加载配置文件:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_23

去到任何目录就可以发现,服务启动的命令:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_24

 然后把次配置分发到其他服务:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_25

发送给所有服务:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_26

 13、启动node1 

zookeeper集群拒绝连接 zookeeper集群使用_配置文件_27

依次启动4台服务,默认是后台启动,加上start-foreground 变成前台启动,日志阻塞打印。  

zookeeper集群拒绝连接 zookeeper集群使用_java_28

 启动状态:

zookeeper集群拒绝连接 zookeeper集群使用_数据_29

查看node1服务器:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_30

 连接node3并且node3是leader角色。

角色已经选出了,证明服务起来三台时就已经选出了主节点:

zookeeper集群拒绝连接 zookeeper集群使用_java_31

 再看node2:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_32

 最后启动node4:

zookeeper集群拒绝连接 zookeeper集群使用_数据_33

node4的启动状态:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_34

  成功启动后从主节点拉取数据,此时node3依然是主节点,暂时不会变了,除非挂了。

 

14、在node3处 control + c 停止次服务后,其他三台会迅速选出一个新的主节点,如下图:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_35

 node4变成了主节点,如果所有服务突然断电挂了,然后重启后谁的数据最完整谁就被选做主节点。

15、命令行的客户端启动命令:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_36

默认连接自己:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_37

 查看帮助命令:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_38

查看默认的根目录,再创建一个子目录:

zookeeper集群拒绝连接 zookeeper集群使用_java_39

 创建多层目录和获取数据的命令:

zookeeper集群拒绝连接 zookeeper集群使用_数据_40

常用的保存和获取数据的方法:

zookeeper集群拒绝连接 zookeeper集群使用_zookeeper集群拒绝连接_41

 存安全的二进制数据,一个节点最多1M数据。

 修改和查询多几目录数据:

zookeeper集群拒绝连接 zookeeper集群使用_数据_42

 直接新建并查询数据:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_43

Zookeeper 节点状态属性:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_44

  删除节点:

zookeeper集群拒绝连接 zookeeper集群使用_服务器_45

 16、Znode 有两种类型:

临时(ephemeral)(create -e /a1/test1 “test1” 客户端断开连接, zk 将删除 ephemeral 类型节点)
持久(persistent) (create -s /a1/test2 “test2” 客户端断开连接 zk 不删除 persistent 类型节点)

17、服务交叉连接信息:

zookeeper集群拒绝连接 zookeeper集群使用_配置文件_46

 

18、查看服务连接信息:

zookeeper集群拒绝连接 zookeeper集群使用_java_47

 到此,zk操作的基本流程分享完毕