zookeeper-3.4.6的安装和简单使用

来源:互联网 发布:网络直播商业模式 编辑:程序博客网 时间:2024/06/01 17:09

一,zookeeper简介

zookeeper主要为分布式程序提供协调服务的,解决一致性等问题。如分布式中的高可用中的主节点的选择,CS架构中,有多台服务器,客户端对服务器的选择等应用场景。
zookeeper的主要角色是leader和follower,一个时间,只有一个leader,其余节点是follower,leader靠Paxos算法投票得出。
zookeeper主要使用的算法是Paxos算法,也是zookeeper的核心。可以自行了解。主要的角色提议者和接受者,每个节点都是公平的,都可以有这两个角色。下面是Paxos的主要的阶段:
接受者实际上只需要回复它接受过的proposal_id最大的提案即可,因为其它提案根本不可能会被选值策略选中。因此最终的协议如下,它就是Paxos:
阶段一 预提案阶段:
提议者Proposer:
向接受者Acceptor广播预提案,附带接下来提案Proposal的proposal_id
接受者Acceptor:
收到预提案后更新a_proposal_id = max(proposal_id,a_proposal_id),如果预提案的proposal_id>a_proposal_id,Acceptor回复记录的接受过的proposal_id最大的提案。

阶段二 提案阶段:
提议者Proposer:
等待直到收到大多数接受者对预提案的回复,从所有回复的提案组成的法定数目的提案集合K中挑选proposal_id最大的提案,以该提案的值作为本次提案的值。
如果K是空集,那么可以给提案任意赋值。然后把该提案广播给接受者们,提案和预提案共享同一个proposal_id。
接受者Acceptor:
如果收到的提案的proposal_id>= a.proposal_id,那么接受这个提案,更新a_proposal_id = max(proposal_id,a_proposal_id),更新记录的提案。

二,zookeeper的安装

1.安装准备
①三台linux虚拟机,我用的是centos7
②需要安装jdk
③zookeeper的安装包(可以去这儿下载)
2.开始安装(一下内容三台机器都需要用)
①解压

tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/HPEU/

②配置

cd /usr/local/HPEU/zookeeper-3.4.6/conf
//这里面只有zoo_sample.cfg文件,需要将这个文件更名为zoo.cfg,并修改其中的一些配置
cp zoo_sample.cfg zoo.cfg

修改配置如下:

tickTime=2000initLimit=10syncLimit=5dataDir=/usr/local/HPEU/zookeeper-3.4.6/zookeeperdataLogDir=/usr/local/HPEU/zookeeper-3.4.6/zookeeper/logsclientPort=2181server.1=hadoop1:2888:3888server.2=hadoop2:2888:3888server.3=hadoop3:2888:3888

主要参数解释如下:
tickTime->心跳的间隔时间
initLimit->初始化连接时最长能忍受多少个心跳时间间隔数
syncLimit->这个配置项标识Leader 与Follower 之间发送消息,请求和 应答时间长度,最长不能超过多少个tickTime的时间长度,总的时间长度就是5*2000=10 秒
dataDir->zookeeper数据目录
dataLogDir->zookeeper日志目录
clientPort->客户端链接zookeeper的端口
server.1=hadoop4:2888:3888->servers是固定字段,1表示hadoop4的id(注意这个id)hadoop4表示的是一个节点的主机名(这儿可以是ip),2888表示leader和follower之间通信的端口(默认是这个,可以改),3888表示没有leader的时候,通过投票选举leader的端口。

③将zookeeper的目录配置为环境变量

vim /etc/profile//加入这两个export ZOOKEEPER_HOME=/usr/local/HPEU/zookeeper-3.4.6export PATH=$PATH:$ZOOKEEPER_HOME/binsource /etc/profile

还有一个重要的配置就是创建myid这个文件:
在zookeeper的数据目录中创建myid文件,并对应上zoo.cfg配置的id,即在hadoop1中的myid中的值为1,在hadoop2中的myid中的值为2,在hadoop3中的myid中的值为3

三,启动以及简单使用

zkServer.sh start/status/stop 开启/查看状态/停止 执行命令的节点的zookeeper服务器
开启后查看三台节点的状态,一台为leader,另外两台是follower
这里写图片描述这里写图片描述
这里写图片描述

使用zkCli.sh 命令启动zookeeper客户端
启动客户端后可以使用help指令查看对应的指令。

ls /  ->查看根目录下的节点,默认有一个zookeeper节点get /zookeeper ->查看zookeeper的节点信息create [-s] [-e] path data acl ->创建path的节点 data必须要,acl可以加可以不加(这个表示一些权限),[-s] 表示这个是顺序节点,即节点名在这个目录下是唯一的,会自动在你的名字后面给你加上一些id号,不加的话就不会给你加上id号。[-e] 表示零时节点,即这个客户端推出,zookeeper就会自动删除,不加的话,该节点即为持久节点。delete path [version] -> 删除节点rmr path -> 递归删除节点connect host:port ->连接上某个host上的zookeeper服务器

这里写图片描述
这里写图片描述
这里写图片描述

原创粉丝点击