ZooKeeper从单机到集群

本文涉及的产品
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: ZooKeeper从单机到集群

1 安装单机版

1.1安装 Linux

1.2安装 JDK

配置环境变量

 

修改系统级环境变量配置文件. 文件是 : /etc/profile

1.3上传 Zookeeper

官方资源包可在 zookeeper.apache.com 站点中下载

1.4解压 Zookeeper 压缩包

[root@localhost temp]# tar -zxf zookeeper-3.4.6.tar.gz

[root@localhost temp]# cp zookeeper-3.4.6 /usr/local/zookeeper -r

1.5 Zookeeper 目录结构

1. bin :放置运行脚本和工具脚本,如果是 Linux 环境还会有有 zookeeper 的运

行日志 zookeeper.out

2. conf : zookeeper 默认读取配置的目录,里面会有默认的配置文件

3. contrib : zookeeper 的拓展功能

4. dist-maven : zookeeper 的 maven 打包目录

5. docs : zookeeper 相关的文档

6. lib : zookeeper 核心的 jar

7. recipes : zookeeper 分布式相关的 jar 包

8. src : zookeeper 源码

1.6 配置 Zookeeper

Zookeeper 在启动时默认的去 conf 目录下查找一个名称为 zoo.cfg 的配置文件。

在 zookeeper 应用目录中有子目录 conf 。

其中有配置文件模板: zoo_sample.cfg

# cp zoo_sample.cfg zoo.cfg 。

zookeeper 应用中的配置文件为 conf/zoo.cfg 。

修改配置文件 zoo.cfg - 设置数据缓存路径

1.7 启动 Zookeeper

默认加载配置文件:./zkServer.sh start:默认的会去 conf 目录下加载 zoo.cfg 配置文件。

指定加载配置文件:./zkServer.sh start 配置文件的路径。

2 安装集群版

2.1 Zookeeper 集群中的角色

Zookeeper 集群中的角色主要有以下三类


2.2 设计目的

1. 最终一致性: client 不论连接到哪个 Server ,展示给它都是同一个视图,这是 zookeeper最重要的性能。

2 . 可靠性:具有简单、健壮、良好的性能,如果消息 m 被到一台服务器接受,那么它将被所有的服务器接受。

3 . 实时性: Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因, Zookeeper 不能保证两个客户端能同时得到 刚更新的数据,如果需要最新数据,应该在读数据之前调用 sync() 接口。

4 . 等待无关( wait-free ):慢的或者失效的 client 不得干预快速的 client 的请求,使得每个 client 都能有效的等待。

5. 原子性:更新只能成功或者失败,没有中间状态。

6 . 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息 a 在消息b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被发布;偏序是指如果一个消息 b 在消 息 a 后被同一个发送者发布, a 必将排在 b 前面。

2.3 集群安装

使用 3 个 Zookeeper 应用搭建一个伪集群。应用部署位置是: 192.168.70.143 。服务监听

端口分别为: 2181 、 2182 、 2183 。投票选举端口分别为 2881/3881 、 2882/3882 、 2883/3883 。

tar -zxf zookeeper-3.4.6.tar.gz

将解压后的 Zookeeper 应用目录重命名,便于管理

mv zookeeper-3.4.12 zookeeper01

20200321134943282.png

2.3.1 提供数据缓存目录

在 zookeeper01 应用目录中,创建 data 目录,用于缓存应用运行数据 cd zookeeper01

mkdir data

2.3.2 复制应用

复制两份 Zookeeper 应用。用于模拟集群中的 3 个节点。

cp -r zookeeper01 zookeeper02

cp -r zookeeper01 zookeeper03

20200321140601860.png

2.3.3 提供配置文件

在 zookeeper 应用目录中有子目录 conf 。其中有配置文件模板: zoo_sample.cfg

cp zoo_sample.cfg zoo.cfg

zookeeper 应用中的配置文件为 conf/zoo.cfg 。

2.3.4 修改配置文件 zoo.cfg - 设置数据缓存路径

dataDir 参数值为应用运行缓存数据保存目录。是 3.2.3 步骤中创建的目录。使用绝对路 径赋值。不同的应用路径不同。

2.3.5 提供应用唯一标识

在 Zookeeper 集群中,每个节点需要一个唯一标识。这个唯一标识要求是自然数。且唯

一标识保存位置是: $dataDir/myid 。其中 dataDir 为配置文件 zoo.cfg 中的配置参数

在 data 目录中创建文件 myid : touch myid

20200322172151750.png

为应用提供唯一标识。本环境中使用 1 、 2 、 3 作为每个节点的唯一标识。

vi myid

20200322172110772.png

简化方式为: echo [ 唯一标识 ] >> myid 。 echo 命令为回声命令,系统会将命令发送的

数据返回。 '>>' 为定位,代表系统回声数据指定发送到什么位置。 此命令代表系统回声数

据发送到 myid 文件中。 如果没有文件则创建文件。

2.3.6 修改配置文件 zoo.cfg - 设置服务、投票、选举端口

vi zoo.cfg

20200322172356595.png

clientPort= 2181 # 服务端口根据应用做对应修改 ,zk01-2181,zk02-2182,zk03-2183

server.1=192.168.70.143:2881:3881

server.2=192.168.70.143:2882:3882

server.3=192.168.70.143:2883:3883

20200322172659644.png

由于是伪集群所以要考虑端口号。不能抢占冲突!

20200322174552415.png

2.3.7 启动 ZooKeeper 应用

20200322175050194.png


bin/zkServer.sh start

20200322175210624.png

ZooKeeper 集群搭建后,至少需要启动两个应用才能提供服务。因需要选举出主服务节

点。启动所有 ZooKeeper 节点后,可使用命令 bin/zkServer.sh status 来查看节点状态。如下:

Mode: leader - 主机

Mode: follower - 备份机

20200322180641295.png


2.3.8 关闭 ZooKeeper 应用

bin/zkServer.sh stop 命令为关闭 ZooKeeper 应用的命令。

2.3.9 控制台访问 ZooKeeper 应用

bin/zkCli.sh -server 192.168.199.175:2181

命令格式为: zkCli.sh -server host:port 。默认连接 localhost:2181 。 2.3.10 控制台客户端常用命令

本课程只介绍 常用命令 。

connect host:port - 连接其他的 ZooKeeper 应用。

ls path - 列表路径下的资源。在 ZooKeeper 控制台客户端中,没有默认列表功能,必须

指定要列表资源的位置。 如: ls / ; ls /path 等。

create [-e] [-s] path data - 创建节点,如: create /test 123 创建一个 /test 节点,节点携

带数据信息 123 。 create -e /test 123 创建一个临时节点 /test ,携带数据为 123 ,临时节点只

在当前会话生命周期中有效,会话结束节点自动删除。

create -s /test 123 创建一个顺序节点

/test ,携带数据 123 ,创建的顺序节点由 ZooKeeper 自动为节点增加后缀信息,如 -/test00000001

等。 -e 和 -s 参数可以联合使用。

get path - 查看指定节点的数据。 如: get /test 。结果如下:

[zk: 192.168.199.175:2181(CONNECTED) 22] get /test

123

cZxid = 0xd # 创建节点时的事务 ID ,由 ZooKeeper 维护。

ctime = Tue Jun 12 07:45:53 PDT 2018

mZxid = 0x1f # 当前节点携带数据最后一次修改的事务 ID 。

mtime = Tue Jun 12 07:52:53 PDT 2018

pZxid = 0x21 # 子节点列表最后一次修改的事务 ID 。

cversion = 1 # 节点版本号,当节点的子节点列表发生变化时,版本变更。

dataVersion = 2 # 数据版本号,当节点携带数据发生变化时,版本变更。

aclVersion = 0

ephemeralOwner = 0x0 # 此数据值不是 0x0 时,代表是临时节点

dataLength = 3 # 节点携带数据长度

numChildren = 1 # 子节点数量

set path data [version] - 设置对应位置节点的数据。如: set /test 'test data' 。 如果要设

置的数据中有空格,则使用单引号界定数据的范围。每次修改数据后, dataVersion 属性自增。

那么在 set 命令中可以指定 version , version 数据必须与上次查询的值一致,用于保证本次修

改命令执行时,没有其他会话修改此数据。

delete path [version] - 删除指定节点,此命令不能删除有子节点的节点。如: delete /test 。

其中 version 参数和 set 命令的 version 含义一致

rmr path - 删除指定结点,包括子节点。

quit - 退出控制台


目录
相关文章
|
8月前
|
消息中间件 运维 Java
搭建Zookeeper、Kafka集群
本文详细介绍了Zookeeper和Kafka集群的搭建过程,涵盖系统环境配置、IP设置、主机名设定、防火墙与Selinux关闭、JDK安装等基础步骤。随后深入讲解了Zookeeper集群的安装与配置,包括数据目录创建、节点信息设置、SASL认证配置及服务启动管理。接着描述了Kafka集群的安装,涉及配置文件修改、安全认证设置、生产消费认证以及服务启停操作。最后通过创建Topic、发送与查看消息等测试验证集群功能。全网可搜《小陈运维》获取更多信息。
701 1
|
12月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
265 1
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
245 1
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
245 1
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
237 1
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
204 0
|
存储 数据库
zookeeper 集群环境搭建及集群选举及数据同步机制
zookeeper 集群环境搭建及集群选举及数据同步机制
407 2
|
开发工具
部署安装zookeeper集群
部署安装zookeeper集群
167 0
|
Java 网络安全
分布式系统详解--框架(Zookeeper-简介和集群搭建)
分布式系统详解--框架(Zookeeper-简介和集群搭建)
239 0