您的位置:首页 > 运维架构 > 网站架构

ZooKeeper入门笔记---架构以及应用介绍

2016-11-06 09:36 621 查看


ZooKeeper架构图:



1、ZooKeeper的基本概念
Zookeeper是Hadoop的分布式协调服务,分布式应用程序可以基于它实现同步服务(数据的事务性一致),配置服务和命名服务. 

Zookeeper是一个有多个Server组成的集群. 

1>一个leader,多个follower 

2>每个server保存一份数据副本 

3>全局数据一致 

4>分布式读写 

5>更新请求转发,有leader实施
2、ZooKeeper集群搭建的过程
ZK集群搭建的前提:ZK服务器集群规模不小于3个节点,要求各服务器之间系统时间保持一致(若是单个节点,则是伪分布). 

①解压缩Zookeeper,并设置环境变量. 

②修改Zookeeper的配置文件zoo.cfg,在配置文件中指定zk存放数据的目录以及节点对应的服务器编号(ID). 

格式: 

dataDir=/usr/local/zk/data/ 

server.N=YYY:2888:3888 

具体含义: 

YYY这个节点对应的服务器编号为N 

其中N为节点对应的服务器编号、YYY为节点、2888这个端口负责在zk集群中进行数据的传输、3888这个端口负责在zk集群中进行选举 

如: 

server.1=hadoop11:2888:3888 

server.2=hadoop22:2888:3888 

server.3=hadoop33:2888:3888 

③创建zk存放数据的目录. mkdir /usr/local/zk/data 

④在data目录下,创建文件myid,并在myid文件中绑定节点对应的服务器编号,即N。 


 

⑤启动,在三个节点上分别执行命令zkServer.sh start 

⑥检验,在三个节点上分别执行命令zkServer.sh status.检验选举机制,同时查看对应的Java进程QuorumPeerMain. 

集群搭建原则:在zk集群搭建的过程中,以zk的伪分布安装为主线,由内向外逐渐扩展zk集群.
3、为什么使用Zookeeper
1>大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等) 

2>目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制 

3>协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器 

4>ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用
4、Zookeeper的作用
1>zk可以用来保证数据在zk集群之间的数据的事务性一致 

2>Hadoop2.0中,使用Zookeeper的事件处理确保整个集群只有一个活跃的NameNode,存储配置信息等 

3>HBase,使用Zookeeper的事件处理确保整个集群只有一个HMaster,察觉HRegionServer联机和宕机,存储访问控制列表等.
5、如何理解Zookeeper中的事务性一致
如果当某一个客户端Client在zk上面做了一个数据的变更、或者是增加了一个数据、删除了一个数据等等.那么这个Server会把这个变化同步到其它服务器上面,同步之后所有的客户端Client都可以获得这个最新的变化.
6、如何理解Zookeeper的数据模型
zk中有一个类似Linux文件系统的目录结构,但是目录结构在Zookeeper中叫做节点,这些节点的特点:可以赋值、可以取值、可以添加、可以删除.Zk可以用来保持数据在集群之间的数据的一致性. 


 

代码查看: 



7、简述zk中常用的命令
ls / :查看zk的目录结构 

create :创建一个节点并给它赋值 

get :获取某一个节点的数值 

set :设置某一个节点的数值 

zkServer.sh start:开启zk集群的服务模式 

zkCli.sh:进入客户端模式
8、简述Zk节点的分类
当我们创建的这个节点依赖于当前链接的时候,即若链接中断,节点不存在,称为短暂类型 

若节点不因为链接中断而丢失称为持久类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: