zookeeper是一个集中服务的开源框架,现在的版本是3.4.14,它可用于管理配置信息、命名空间、分布式同步以及提供分组服务。它的数据存在于内存中,结构类似于树结构,具有高吞吐量低延迟的特性,集群可靠性也比较高。
在zookeeper中只有绝对路径的概念,没有相对路径,它是以"/"左斜线作为开始的根节点的,每一个节点叫做znode节点,每一个节点都必须有个value值,节点的类型可以是持久节点、持久有序节点、临时节点、临时有序节点,持久有序是指数据不会随着应用程序的存在而存在,只有zookeeper没有退出运行,那么数据会一直存在,有序是指不同客户端在争抢创建同一个节点时将会在该节点下生成一系列有序的value值,这也是zookeeper提供的高可用性来保证的,该有序的value值是一个带符号的10位十进制序号,如app节点下面争抢创建一个为app2的子节点,其中一台客户端创建了一个节点为app20000000003的有序节点;临时节点则和持久节点刚好相反,它是在应用程序下线或者过期时间到达后就自动删除了。作为一个快速高效响应的框架,它要求存储的数据不能超过1M。
在Windows上安装完成zookeeper,然后进入安装目录的bin下面,通过zkServer.cmd来启动服务,在启动
zkCli.cmd,就可以进入到zookeeper的命令模式编辑zookeeper中的数值,通过help命令,我们看到有以下属性
主要说明下几个命令:
1.ls---用于获取指定节点下面的所有子节点信息,如ls /
2.create---用于在指定路径下面创建子节点,-s是指顺序节点,-e是指临时节点,默认创建的是持久节点,如创建持久有序节点s1,create -s /s1 123
3.get---获取节点下面的具体信息如图所示
456表示节点zk的value值;
cZxid表示创建该节点时的zxid,zxid又称为事务id,它是一个全局的有序值;
ctime表示该节点的创建时间;
mZxid表示修改该节点后的最后的zxid;
mtime表示修改该节点的最后时间;
pZxid表示该节点的子节点的最后修改zxid;
cversion表示该节点的子节点变更的次数;
dataVersion表示该节点被修改的次数;
aclVersion表示该节点的acl被修改的次数;
ephemeralOwner表示临时节点所有者的会话id,非临时节点为0;
dataLength表示该节点的value值数据长度;
numChildren表示该节点下的子节点数量,不包括子节点下的子节点。
4.set---表示设置指定节点的最新值,如set /zk 789,它会更新mZxid,mtime,dataVersion,dataLength等这几个属性。
5.delete---表示删除指定节点,如delete /zk/app2,如果指定节点下面有子节点,则不能删除成功。
6.sync---表示等待指定节点的数据同步。
了解完zk的client端的操作,我们来看下集群配置下的最简单的配置,进入到zk安装路径下的conf文件夹,打开zoo.cfg文件,我们会为其配置如下的
tickTime=2000 initLimit=10 syncLimit=5 dataDir=D:/zookperData/zookper1/data dataLogDir=D:/zookperData/zookper1/dataLog clientPort=2181 server.1=localhost:2888:3888 server.2=localhost:2889:3889 server.3=localhost:2890:3890
我们的集群是配置在本机上面,同时开启3个服务端,我们说明下这些参数的含义
tickTime---用于集群中的leader和follower之间的心跳检测时间,也用于与客户端进行会话超时管理,目前允许最小为2倍tickTime,最大为20倍tickTime的设定。
initLimit---用于集群中的leader和follower之间完成初始化同步时能容忍的最多心跳次数。
syncLimit---用于集群中的leader和follower之间请求和应答能容忍的最多心跳次数。
dataDir---用于内存数据库快照的文件和存放事务日志(没有指定dataLogDir时)的路径。
dataLogDir---专门用于存放事务日志的路径。
clientPort---用于客户端访问zookeeper时的访问接口。
server.1表示第一台服务器的地址,这个1和dataDir路径下的myid文件中的内容相同,在这个文件中存放的数据也是1,该文件没有后缀,这个是必须要注意的情况,localhost:2888:3888分别表示服务端的地址:leader和follower直接数据同步的端口:选举leader时的端口。
相关推荐
Zookeeper可以进行集群的配置管理,名字服务,分布式锁,集群管理等等
ZooKeeper入门简介及配置使用 ZooKeeper 是⼀一个为分布式应⽤用所设计的分布的、开源的协调服务。分布式的应⽤用 可以建⽴立在同步、配置管理、分组和命名等服务的更⾼高级别的实现的基础之上。 ZooKeeper 意欲设计...
Zookeeper的安装及配置
zookeeper3.4.14安装包和配置文件zoo.cfg, 安装流程请查看我的博客。
Zookeeper单机及集群安装配置
zookeeper集群zoo.cfg配置文件,下载后将zookeeper地址改成实际地址,可以直接使用
ZooKeeper入门简介及配置使用
ZooKeeper集群安装配置,里面有详细的操作步骤可以参考
Zookeeper原理及安装配置.pdf
zookeeper集群配置详解 详细描述在linux集群环境中搭建zookeeper的步骤
大数据技术基础实验报告-Zookeeper的安装配置和应用实践
ZooKeeper入门简介及配置使用[整理].pdf
zookeeper 介绍、部署、可视化插件、zookeeper的应用场景...... ZooKeeper是一个分布式的,开放源码的分布式系统的协调服务。它的数据是存储在内存中的,所以访问速度很快。基于对Paxos算法(一种基于消息传递的一致...
一款好用的zookeeper配置内容导入导出工具,适用平台是windows,但是也可以修改run.bat为shell脚本,适合linux。 带图形界面,修改config中的config.xml,添加需要管理的zookeeper地址信息,同时可以定义两个用户...
zookeeper概述 zookeeper安装 zookeeper结构与原理 zookeeper应用
hbase和zookeeper的详细配置
zookeeper 单机集群配置,下载后,只需配置zookeeper环境变量,即可使用
zookeeper集群的配置文件示例,zoo.cfg,里面已经配置好了,一看就懂。只要把该文件放在zookeeper目录下的conf文件夹下即可
kafka集群zookeeper集群整合配置 本人亲自验证
zookeeper配置文件.zip