阅读声明:以下内容是结合网上材料所写个人理解,如有不当,欢迎大家指正~~~谢谢
一、Zookeeper介绍
zookeeper,见名知意嘛,zoo动物园,keeper保持者、管理员,结合起来就是动物管理员,为什么这么说呢?不放大家可以看一看目前大数据技术:比如Hadoop的logo是一个黄色的大象、HBase的log像是一个鲸鱼、Hive的logo就比较奇特了,是蜜蜂的身体与Hadoop大象的象头的结合体,等等等。由此我们看来大数据技术就像是一个动物园,而zookeeper就像是一个动物园的管理员,它的logo就更表明了它的含义。
说了那么多闲话,下面开始进入正题,看Apache官网给它的定义:
ZooKeeper是一个分布式的协调服务框架,ZooKeeper可以解决分布式中常见的问题:集群管理、统一命名服务、信息配置管理、分布式锁等。
二、ZooKeeper的基本概念
学好一门技术,首先我们得对这门技术的原理特别清楚,下面我们进入ZooKpper的结构,如下:
1)ZooKeeper中只有一个根节点/,每个节点都可以拥有子节点,每个节点称为zNode节点,同时也可以存储数据。
2)多个节点形成zNode树,存储父子之间关系及节点信息
3)zNode树是维系在内存中,以供快速查询及快速响应
4) 操作节点:都是相对于根节点来说,例如ls /zk_1
5)节点类型:
①普通持久节点:create /test01 123(当创建此节点的客户端线程挂掉后,该节点依然存储)
②普通临时节点:create -e /test01 123(当创建此节点的客户端线程挂掉后,该节点会被删除)
③顺序持久节点:create -s /test01 123(顺序指的是在指定的路径下拼上一个递增的顺序号)
④临时持久节点:create -e -s /test01 123(当创建此节点的客户端线程挂掉后,该节点会被删除,顺序指的是在指定的路径下拼上一个递增的顺序号)
这里额外说明,临时节点的作用:管理集群服务的节点。
三、ZooKeeper的常用命令
服务端的常用命令
客户端的常用命令
四、Zookeeper的应用场景
①集群管理
②集群统一的配置信息管理
③ZooKeeper应用于集群Master的监控以及主备切换
④ZooKeeper应用于集群中统一的命名
⑤ZooKeeper应用于分布式锁
(这里我的理解不够深,下次补充Redis应用于分布式锁)