一.Zookeeper是什么?
ZooKeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件。
二.Zookeeper的使用场景:
三.Zookeeper单节点的安装:
3.在conf路径下复制一份zoo_sample.cfg文件,并改名为zoo.cfg
4.然后进入bin目录下,双击zkServer.cmd即可启动Zookeeper(注意:如果没有做上面配置文件复制改名为zoo.cfg的操作,此处启动操作会闪退)
四.Zookeeper集群安装:
1.按照上述安装完单节点以后,进入conf目录,在zoo.cfg文件里面修改下路径dataDir=/soft/data/tmp/zookeeper,加上集群的配置:(这里的IP配置上你不同服务的IP地址)
service.0=192.168.244.100:2888:3888
service.1=192.168.244.101:2888:3888
service.2=192.168.244.103:2888:3888
2.然后进入你的dataDir路径,如果没有这个路径的话,自己创建一个:mkdr -p /soft/data/tmp/zookeeper;进入这个目录cd /soft/data/tmp/zookeeper 向这个目录写入一个内容为0的myid文件: echo 0 > myid。配置完成以后,其他几个节点服务器也按照这个方式配置,不过后面2个节点需要分别写入myid为1和2对应配置文件里面的service.0,service.1,service.2
3.然后启动服务即可:zkServer.sh start(刚开始启动第一个节点的时候查看状态的时候是没有起来的zkServer.sh stauts查看状态是not running的,直到启动从节点follower以后查看主节点leader才会起来)
五.Zookeeper的特性
客户端与服务端的一次会话连接,本质是TCP长连接,通过会话可以进行心跳检测和数据传输;
持久节点(PERSISTENT):关闭服务器之后还存在
持久顺序节点(PERSISTENT_SEQUENTIAL):因为每次创建都有顺序,所以可以创建多个
临时节点(EPHEMERAL):关闭服务器之后再开就没了
临时顺序节点(EPHEMERAL_SEQUENTIAL):
事件监听器,客户端可以在节点上注册监听器,当特定的事件发生后,zk会通知到感兴趣的客户端;eventType: NodeCreated、NodeDeleted、NodeDataChanged、NodeChildrenChange
Zk采用ACL(access control lists)策略来控制权限,5中权限:create、read,write,delete,admin
六.Zookeeper服务端常用命令:
启动ZK服务: sh bin/zkServer.sh start ·
查看ZK服务状态: sh bin/zkServer.sh status ·
停止ZK服务: sh bin/zkServer.sh stop · .
重启ZK服务: sh bin/zkServer.sh restart
七.Zookeeper客户端常用命令:
使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。 命令行工具的一些简单操作如下:
1.显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
2.显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
3.创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
4.获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
5.修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置 ·
6.删除文件: delete /zk 将刚才创建的 znode 删除,如果存在子节点删除失败
7.递归删除:rmr /zk将刚才创建的 znode 删除,子节点同时删除
8.退出客户端: quit ·
9.帮助命令: help