接着上一篇分享,今天我们在服务器上实战演练。
1、准备 node01~node04 四台机器:
安装了JDK设置环境变量,下载了ZK包,进入主目录。
2、解压 ZK包 tar xf zookeeper-3.4.6.tar.gz
创建特定目录,把解压后的zk包复制到里面。
注意:最好不要用yam安装。
3、进入ZK包里面:
继续进入:
又进入核心的bin目录,看到如下核心文件。
4、返回后进入conf目录:
然后复制重命名一个配置文件。
5、打开配置文件 vi zoo.cfg
修改了持久化的目录:dataDir
填写服务的配置:
四台服务配置:
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 然后进去
7、创建myid文件:
编辑添加 1,代表是一号服务器:
8、然后把此配置复制拷贝到node2服务器:
输入node2的密码后就行了:
出现此现象,证明正在拷贝,结束后可以去node2服务器上看看。
9、node2服务器:
检查一下:
文件和node1完全一致。
10、 查看配置文件:
编辑myid文件:
node2里面的myid数值是 2
11、文件从node1复制到node3和node4中:
到node4中:
然后分别在node3和node4中创建myid文件:
和
查看个服务器的时间 date 命令,时间需要保持统一:
12、修改配置文件:vi /etc/profile
添加配置:
export ZOOKEEPER_HOME=/opt/mashibing/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
加载配置文件:
去到任何目录就可以发现,服务启动的命令:
然后把次配置分发到其他服务:
发送给所有服务:
13、启动node1
依次启动4台服务,默认是后台启动,加上start-foreground 变成前台启动,日志阻塞打印。
启动状态:
查看node1服务器:
连接node3并且node3是leader角色。
角色已经选出了,证明服务起来三台时就已经选出了主节点:
再看node2:
最后启动node4:
node4的启动状态:
成功启动后从主节点拉取数据,此时node3依然是主节点,暂时不会变了,除非挂了。
14、在node3处 control + c 停止次服务后,其他三台会迅速选出一个新的主节点,如下图:
node4变成了主节点,如果所有服务突然断电挂了,然后重启后谁的数据最完整谁就被选做主节点。
15、命令行的客户端启动命令:
默认连接自己:
查看帮助命令:
查看默认的根目录,再创建一个子目录:
创建多层目录和获取数据的命令:
常用的保存和获取数据的方法:
存安全的二进制数据,一个节点最多1M数据。
修改和查询多几目录数据:
直接新建并查询数据:
Zookeeper 节点状态属性:
删除节点:
16、Znode 有两种类型:
临时(ephemeral)(create -e /a1/test1 “test1” 客户端断开连接, zk 将删除 ephemeral 类型节点)
持久(persistent) (create -s /a1/test2 “test2” 客户端断开连接 zk 不删除 persistent 类型节点)
17、服务交叉连接信息:
18、查看服务连接信息:
到此,zk操作的基本流程分享完毕