zookeeper详解与单机安装、集群安装

本文详细介绍了Apache Zookeeper的用途、特点和节点类型,包括持久化机制和全局事务ID。接着,提供了Zookeeper的单机安装步骤,涉及关闭防火墙、安装JDK、下载及解压安装包等。此外,还详述了集群安装过程,强调了配置集群服务器地址、创建myid文件等关键步骤。最后,强调了在Zookeeper集群中,只有所有服务器启动后才能对外提供服务。

概述

  1. 是Apache提供的开源的用于进行服务协调和分布式管理的框架
  2. Zookeeper原来是Hadoop的子件之一,后来发现Zookeeper不止可以用于Hadoop也可以用于其他分布式环境下的管理,独立出来称为一个单独的项目

zookeeper可以解决的分布式问题

  1. 在分布式环境下,需要确定一个管理节点
  2. 如果只设置一个管理节点,存在单点故障
  3. 为了避免管理节点的单点故障,需要设置多个管理节点
  4. 需要在管理节点集群中来选举出一个主节点
  5. 要求管理节点集群能够应对崩溃恢复的场景
  6. 管理节点之间要进行信息的共享
  7. 确定一套选举算法

特点与节点类型

一、特点

在这里插入图片描述

  1. Zookeeper是一个树状结构(Znode树)
  2. 树状结构(Znode树)的根节点为 /
  3. Zookeeper的每一个节点称之为是znode节点
  4. 所有的znode节点都是从根节点开始计算
  5. 每一个znode节点都必须存储数据
  6. 每一个持久的znode节点都可以挂载子节点
  7. 每一个znode节点的路径都是唯一的。所以基于这一个特点,可以做集群的统一命名服务
  8. Znode树是维系在内存中的,即每一个znode节点中的数据也是维系在内存中,这样做的目的是方便快速查找
  9. 不能利用Zookeeper存储海量数据,原因:
    1. Znode树维系在内存中,并且多个Zookeeper存储的是相同的数据造成内存的浪费;
    2. Zookeeper是做分布式的协调服务而不是做存储服务
  10. Zookeeper提供了持久化机制,持久化的目录由zoo.cfg中的dataDir属性来决定
  11. Zookeeper会为每一次的事务(增加、删除、更新)提供一个全局的递增的事务id
  12. 任意一个路径是唯一的
二、节点类型
顺序节点非顺序节点
持久节点Persistent_SequentialPersistent
临时节点ephemeral_Sequentialephemeral

节点详解

属性说明
cZxid这个节点创建的时候分配的事务id
ctime这个节点创建的时间
mZxid这个节点的数据更新分配的事务id
mtime这个节点的数据更新的时间
pZxid记录子节点发生增删的事务id
cversion记录子节点增删的次数
dataVersion记录当前节点数据更新的次数
aclVersionacl策略的更新次数
ephemeralOwner如果是持久节点,那么此项为0x0,
如果是临时节点,那么此项为当前sessionid
dataLength 数据的字节个数
numChildren 子节点个数

常用命令

一、客户端指令
指令解释
ls查看指定节点下的所有的子节点
create创建持久节点
create -e创建临时节点
create -s创建持久顺序节点
create -e -s创建临时顺序节点
delete删除节点
rmr递归删除
get获取节点数据和信息
set更新节点数据
quit退出客户端
二、服务器端指令
指令解释
sh zkServer.sh start启动服务器
sh zkServer.sh status查看服务器状态
sh zkServer.sh stop停止服务器
sh zkServer.sh restart重启服务器

单机安装:

1. 关闭防火墙:

a. 临时关闭service iptables
b. 永久关闭stop chkconfig iptables off

2. 安装JDK,JDK要求是1.7及以上

在这里插入图片描述

3. 下载Zookeeper的安装包

http://archive.apache.org/dist/zookeeper/zookeeper-3.4.7/
在这里插入图片描述

4. 解压安装包:tar -xvf zookeeper-3.4.7.tar.gz
5. 进入到安装目录的子目录conf下

在这里插入图片描述
6. 复制:cp zoo_sample.cfg zoo.cfg Zookeeper在启动的时候会默认去找zoo.cfg
在这里插入图片描述
7. 编辑zoo.cfg,修改属性dataDir
在这里插入图片描述

安装完成。在bin目录启动zookeeper并查看状态

  1. 当服务器端启动成功之后,可以执行jps命令查看是否有Zookeeper的QuorumPeer进程
  2. 或者在服务器端启动成功之后,可以执行一下命令查看服务器端状态
sh zkServer.sh start  
sh zkServer.sh status

在这里插入图片描述

集群安装

1. 关闭Linux(版本是Centos6.X)的防火墙

临时关闭防火墙:service iptables stop
永久关闭防火墙:chkconfig iptables off

2. 下载安装JDK。注意至少是JDK1.6及以上版本才能使用

在这里插入图片描述

3. 下载或者上传Zookeeper的压缩包

http://archive.apache.org/dist/zookeeper/zookeeper-3.4.7/
在这里插入图片描述

4. 解压压缩包 tar -xvf zookeeper-3.4.7.tar.gz
5. 进入Zookeeper的安装目录下的子目录conf目录中

在这里插入图片描述

6. 将conf目录下的zoo_sample.cfg复制为zoo.cfg。Zookeeper在启动的时候会自动寻找zoo.cfg,根据其中的配

置来启动存储数据
cp zoo_sample.cfg zoo.cfg
在这里插入图片描述

7. 编辑zoo.cfg文件
```xml
vim zoo.cfg 
```
8. 修改其中的属性dataDir,指定数据的存储目录

在这里插入图片描述

9. 在zoo.cfg文件的末添加要构建集群的服务器地址

编号要求是数字并且不能重复
原子广播端口号和选举端口号只要不和当前已经使用的端口号冲突即可

#格式:server.编号=IP地址:原子广播端口:选举端口
#例如:
server.1=192.168.199.11:2888:3888
server.2=192.168.199.12:2888:3888
server.3=192.168.199.13:2888:3888

在这里插入图片描述

10. 在dataDir的指定目录下创建数据存储目录并进入tmp目录

11.

11. 在数据存储目录下编辑新的文件,文件名为myid

在myid文件中填入当前服务器所对应的编号。例如当前服务器的地址为192.168.199.11,则在zoo.cfg文件中指
定编号为1,那么就在myid文件中添加数字1

vim myid

在这里插入图片描述

12. 将要配置的集群中的其他服务器按照上述步骤配置。或者可以将当前服务器中的配置拷到其他服务器上,修

改对应的myid ,这里复制过去即可

scp -r zookeeper-3.4.14 root@192.168.199.12:/home/software/
scp -r zookeeper-3.4.14 root@192.168.199.13:/home/software/

复制完成后吧myid分别改为对应的id号
在这里插入图片描述
在这里插入图片描述

13. 集群全部配置好之后,依次启动每一台服务器,进入Zookeeper安装目录下的bin目录
sh zkServer.sh start
sh zkServer.sh status

在这里插入图片描述
注意:

14. 在Zookeeper集群中,如果单独启动一台服务器,是无法对外提供服务的
15. 当把集群中的服务器都启动之后,可以利用sh zkServer.sh status

来查看当前节点的状态,如果出现leader或者follower,则说明启动成功。

需要注意zoo.cfg里面的路径配置。dataDir=/home/software/zookeeper-3.4.14/tmp
需要把原路径全部删除从新写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值