【云原生进阶之PaaS中间件】第二章Zookeeper-2-安装部署

2023-10-31

1 Zookeeper安装配置

环境准备:

        一台安装有jdk的虚拟机:192.168.152.130

1.1 安装

1.1.1 下载

cd /software

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

1.1.2 解压

tar -zxvf zookeeper-3.4.6.tar.gz

1.2 配置

说明:这里配置的是伪分布式的zookeeper

注意:配置之前一定要在/etc/hosts里面配置主机映射,否则会报错误:

ERROR [master:3890:QuorumCnxManager$Listener@517] - Exception while listening

java.net.SocketException: Unresolved address

vim /etc/hosts

1.2.1 先建立zookeeper的三个数据目录

mkdir -p /zookeeper/zk1
mkdir -p /zookeeper/zk2
mkdir -p /zookeeper/zk3

1.2.2 查看zookeeper的配置文件(已删掉多余的配置和注释)

vim zoo_sample.cfg
tickTime=2000   #session的会话时间 以ms为单位
initLimit=10      #服务器启动以后,master和slave通讯的时间
syncLimit=5       #master和slave之间的心跳检测时间,检测slave是否存活
dataDir=/tmp/zookeeper  #保存zk的快照和数据
clientPort=2181      #客户端访问zk的端口

1.2.3 复制zoo_sample.cfg为zoo1.cfg添加如下配置

cp zoo_sample.cfg zoo1.cfg
vim zoo1.cfg

配置:

#session的会话时间 以ms为单位
tickTime=2000

#服务器启动以后,master和slave通讯的时间
initLimit=10

#master和slave之间的心跳检测时间,检测slave是否存活
syncLimit=5

#(这个目录可以自行指定)
dataDir=/zookeeper/zk1

#客户端访问zk的端口
clientPort=2181
#master对应于前面在hosts里面配置的主机映射 2888是数据同步和消息传递端口,3888是选举端口
server.1=master:2888:3888 

#master对应于前面在hosts里面配置的主机映射 2889是数据同步和消息传递端口,3889是选举端口 
server.2=master:2889:3889 

#master对应于前面在hosts里面配置的主机映射 2890是数据同步和消息传递端口,3890是选举端口 
server.3=master:2890:3890

1.2.4 复制zoo1.cfg为zoo2.cfg添加如下配置

cp zoo1.cfg zoo2.cfg
vim zoo2.cfg
#session的会话时间 以ms为单位
tickTime=2000

#服务器启动以后,master和slave通讯的时间
initLimit=10

#master和slave之间的心跳检测时间,检测slave是否存活
syncLimit=5

#(这个目录可以自行指定)
dataDir=/zookeeper/zk2

#客户端访问zk的端口
clientPort=2182

#master对应于前面在hosts里面配置的主机映射 2888是数据同步和消息传递端口,3888是选举端口
server.1=master:2888:3888 

#master对应于前面在hosts里面配置的主机映射 2889是数据同步和消息传递端口,3889是选举端口 
server.2=master:2889:3889 

#master对应于前面在hosts里面配置的主机映射 2890是数据同步和消息传递端口,3890是选举端口 
server.3=master:2890:3890

 1.2.5 复制zoo1.cfg为zoo3.cfg添加如下配置

cp zoo1.cfg zoo3.cfg
vim zoo3.cfg
#session的会话时间 以ms为单位
tickTime=2000

#服务器启动以后,master和slave通讯的时间
initLimit=10

#master和slave之间的心跳检测时间,检测slave是否存活
syncLimit=5

#(这个目录可以自行指定)
dataDir=/zookeeper/zk3

#客户端访问zk的端口
clientPort=2183
#master对应于前面在hosts里面配置的主机映射 2888是数据同步和消息传递端口,3888是选举端口
server.1=master:2888:3888 

#master对应于前面在hosts里面配置的主机映射 2889是数据同步和消息传递端口,3889是选举端口 
server.2=master:2889:3889 

#master对应于前面在hosts里面配置的主机映射 2890是数据同步和消息传递端口,3890是选举端口 
server.3=master:2890:3890

1.2.6 手动建立myid文件且指定在zk数据目录

        也就是dataDir指定的路径(不管真分布还是伪分布都需要指定) 

echo 1 >> /zookeeper/zk1/myid
echo 2 >> /zookeeper/zk2/myid
echo 3 >> /zookeeper/zk3/myid

说明:

        myid文件内容分别为1,2,3对应于zk配置文件的server.1,server.2,server.3

1.2.7 测试zookeeper分布式是否搭建成功

        分别启动三个zookeeper

cd /software/zookeeper-3.4.6/bin/
./zkServer.sh start /software/zookeeper-3.4.6/conf/zoo1.cfg
./zkServer.sh start /software/zookeeper-3.4.6/conf/zoo2.cfg
./zkServer.sh start /software/zookeeper-3.4.6/conf/zoo3.cfg

        查看3个zookeeper的状态

cd /software/zookeeper-3.4.6/bin/
/zkServer.sh status /software/zookeeper-3.4.6/conf/zoo1.cfg
/zkServer.sh status /software/zookeeper-3.4.6/conf/zoo2.cfg
/zkServer.sh status /software/zookeeper-3.4.6/conf/zoo3.cfg

        可以看到第2个zookeeper是leader,第1个和第3个为follower,到此zookeeper分布式搭建完成!!!

1.2.8 Zookeeper常用命令 

启动:
./zkServer.sh start /software/zookeeper-3.4.6/conf/zoo1.cfg
./zkServer.sh start /software/zookeeper-3.4.6/conf/zoo2.cfg
./zkServer.sh start /software/zookeeper-3.4.6/conf/zoo3.cfg

停止:
./zkServer.sh stop /software/zookeeper-3.4.6/conf/zoo1.cfg
./zkServer.sh stop /software/zookeeper-3.4.6/conf/zoo2.cfg
./zkServer.sh stop /software/zookeeper-3.4.6/conf/zoo3.cfg

查看状态:
/zkServer.sh status /software/zookeeper-3.4.6/conf/zoo1.cfg
/zkServer.sh status /software/zookeeper-3.4.6/conf/zoo2.cfg
/zkServer.sh status /software/zookeeper-3.4.6/conf/zoo3.cfg

1.2.9 Zookeeper真分布式部署在master、slave1、slave2 三台不同的服务器上

 server1..../conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper/zk
clientPort=2181

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

 server2..../conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper/zk
clientPort=2181

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

server3..../conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper/zk
clientPort=2181

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

注意:真分布必须是奇数台,因为必须满足n/2+1=m,m必须大于部署zk机器数的一半(n/2)可用才认为集群可用,而且奇数台更节省资源。

2/2+1=2 一台不能坏

3/2+1=2 可以坏掉一台

4/2+1=3 只能坏一台

5/2+1=3 可以坏2台

2 ZK Shell的使用

2.1 连接zk

zkCli.sh [-server ip:port]

示例:

        连接到master(127.0.0.1 master)这台机器上2181的zookeeper

./zkCli.sh -server master 2181

2.2 列出zk中的节点

ls ls2

 示例:

2.3 创建节点

create [-s] [-e] path data acl

说明:

zk的节点分为两种:临时节点(随着zk session消亡而自动删除)、持久节点(一直存在)

  • -s: 顺序节点
  • -e: 临时节点
  • acl:访问权限控制

示例:

2.3.1 创建一个zk-test的节点

        数据是123 不带-s 、-e默认是持久节点:

create /zk-test "123"

2.3.2 创建顺序节点

create -s /zk-test “test123”

        多次执行创建顺序节点的命令,可以看到zookeeper的内部会对顺序节点的名称进行自增控制。

2.3.3 创建临时节点

create -e /zk-test123 "test1234"

说明:临时节点依赖于顺序节点,临时节点下不能再创建临时节点,顺序节点下才可以创建临时节点

2.3.4 创建子节点test

create /zk-test "" create /zk-test/test "1" ls /zk-test/test

2.4 删除节点命令

delete

示例:

删除节点zk-test,如果zk-test下面还有子节点得先删除子节点,才能删除zk-test

delete /zk-test/test

delete /zk-test

 递归删除一个znode

rmr path

示例:

删除zk-test及其下面的子节点

rmr /zk-test

2.5 获取节点信息

get

示例:

create /zk-123 “abc” get /zk-123

结果说明:

结果
cZxid = #创建节点时zk内部自己分配的id
Ctime = #创建节点的时间
mZxid = #修改的id
mtime = 修改的时间
pZxid = 子节点最后一次被修改的id
cVersion = 0  #拥有的子节点被改的话,该值随着改变
dataVersion = 0 #数据版本
aclVersion = 0 # 访问控制权限的版本
ephemeralOwner = 0X0 #临时节点还是持久节点 临时节点值不为0(值为当前会话id),持久节点值永远为0
dataLength = 3 #数据长度
numChildren = 0 #子节点个数

2.6 更新节点数据

set /zk-123 “d”

2.7 连接到指定节点

connect host:port

 示例:

连接到2181
connect master:2181

连接到2182
connect master:2182

连接到2183
connect master:2183

说明:

        这个命令是在已经连接到zookeeper之后,在里面切换到其他zookeeper时使用。

2.8 设置配额

配额:给某个目录指定多少存储空间或者允许创建多少个节点

setquota -n|-b val path

参数说明:

  • n 指定可以设置多少个子节点
  • b 指定可以设置多大空间(byte)

示例:

setquota -n 5 /zk-123
create  /zk-123/1 1
create  /zk-123/2 2
create  /zk-123/3 3
create  /zk-123/4 4 
create  /zk-123/5 5 
create  /zk-123/6 6

说明:

        对于配额不是硬性的提示,超过配额还是可以继续创建,只不过在日志里面有提示。

配额的用途:

        限制子节点的创建个数和分配空间的大小,如指定某个session有多少空间可以用。

2.9 查看配额

listquota path

2.10 查看节点的状态

stat path

示例:

        查看节点zk-123的状态

stat /zk-123

参考链接

 随笔分类 -  Zookeeper专题系列

Zookeeper简介及核心概念_Cynicism_Kevin的博客-CSDN博客

zookeeper安装以及使用_燕少༒江湖的博客-CSDN博客

Zookeeper工作原理(详细)_zookeeper原理_笔墨登场说说的博客-CSDN博客

Zookeeper的功能以及工作原理_zookeeper的主要功能_空白格的空白的博客-CSDN博客

ZooKeeper基本原理

深入了解Zookeeper核心原理

Zookeeper原理解析 - 简书

Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【云原生进阶之PaaS中间件】第二章Zookeeper-2-安装部署 的相关文章

  • Mac 安装ant

    文章目录 一 官网下载ant 二 解压到指定路径 三 编辑配置 四 执行命令ant version 一 官网下载ant https ant apache org bindownload cgi 二 解压到指定路径 三 编辑配置 vi bas
  • mysql 1197_【MySQL故障处理】 Seconds_Behind_Master= NULL Error_code: 1197

    将处理主从故障的过程记录在此 故障1 Error code 1197 max binlog cache size 数据库版本 5 7 9 报错信息 ERROR Slave SQL for channel Worker 1 failed ex
  • 软件测试基础

    软件测试的目的 软件测试的目的是为了发现错误而执行程序的过程 测试是为了证明程序有错 而不是证明程序无错 好的测试用例在于发现至今未发现的错误 一个成功的测试时发现了至今未发现的错误的测试 注意 测试不仅仅是为了找出错误 通过错误产生的原因

随机推荐

  • 区别对象和数组的方法

    区别对象和数组的方法 1 constructor var obj obj constructor object constructor Array 2 obj instanceof Array true 就是数组 false 就是对象 A
  • 谷歌安装ElasticSearch-head插件

    一 安装 ElasticSearch可以通过安装ElasticSearch head插件来进行数据的查看 在Windows下安装es head是非常麻烦的 需要先安装nodojs 然后在cmd控制台中输入如下执行命令 npm install
  • ISP流程初识

    1 概念 ISP全称 Image Signal Processor 为图像信号处理器 诚如其名 该元件主要实现的功能是处理图像 输出更为理想的目标图像 处理的图像来源是经图像传感器接收的数据 2 基本流程 ISP实现的内部功能主要有黑电平校
  • 数据中有emoji,导致插入不了数据库

    前言 前两天负责的系统 因为需要获取用户的昵称并进行入库 但是有个别用户的昵称中存在emoji表情 导致入库时报错 报错内容 java sql SQLException Incorrect string value xF0 x9F x92
  • Flutter环境安装(超详细)

    Flutter环境搭建 文章目录 Flutter环境搭建 1 配置环境变量 2 下载 Git for Windows 3 下载Flutter SDK 4 下载Android Studio 5 设置Android模拟器 6 安装插件 7 创建
  • 学习笔记 01 Java语法

    JAVA基础语法01 笔记 标识符 标识符可以由字母 下划线 和美元符 组成 不能以数字开头 标识符不能是Java关键字和保留字 变量 数值型 整数类型 byte 1 27 27 1 short 2 32768 32717 2 15 int
  • please configure the postgressql binary path_postgres数据库备份错误

    please configure the postgressql binary path postgres数据库备份错误 备份错误 please configure the postgressql binary path 解决方法 file
  • 【C++】基类和派生类构造函数的调用顺序

    首先说说构造函数 大家都知道构造函数里就可以调用成员变量 而继承中子类是把基类的成员变成自己的成员 那么也就是说子类在构造函数里就可以调用基类的成员了 这就说明创建子类的时候必须先调用基类的构造函数 只有这样子类才能在构造函数里使用基类的成
  • 上传了ipa但在苹果App Store中没有看到构建版本的问题

    AU上传ipa出现下图红框提示说明成功上传 但有时App Store后台没有出现构建版本 请查看下面详细说明 一 首先登录iTunes Connect 后台 查看ipa构建情况 https appstoreconnect apple com
  • 点击.txt文件显示"不是有效的Win32应用程序"处理方法

    方法是 我的电脑 工具 文件夹选项 文件类型 找到txt文件 新建 操作为open 命令行为 C WINDOWS system32 NOTEPAD EXE 1 然后检查 windows system32文件夹下有没有NOTEPAD EXE
  • VMware Fusion Pro v10.1.6 苹果虚拟机免费版及解锁许可证

    说到虚拟机可以说现在市场上VM牌子的虚拟机是最为强大的一款没有之一 虽然还有一款德国软件公司InnoTek所开发的 VirtualBox 免费开源轻量级虚拟机软件 但是VMware 是这些虚拟机无法比拟的 Windows 平台 VMware
  • k8s 二进制安装多master节点高可用集群

    k8s 集群环境规划 系统统一使用 CentOS 7 9 192 168 1 10 k8s m1 控制节点1 192 168 1 11 k8s m2 控制节点2 192 168 1 20 k8s w1 node节点1 192 168 1 2
  • gtest测试用例

    google tf测试框架代码 https github com google googletest tree 2fe3bd994b3189899d93f1d5a881e725e046fdc2 跑单个测试例 test gtest filte
  • shell中if语句特殊参数

    shell中if语句特殊参数 d 判断制定的是否为目录 z 判断制定的变量是否存在值 n 判断指定的变量是否为null f 判断制定的是否为文件 L 判断制定的是否为符号链接 r 判断制定的是否可读 s 判断存在的对象长度是否为0 w 判断
  • 2023_Spark_实验九:Scala函数式编程部分演示

    需求 1 做某个文件的词频统计 某个单词在这个文件出现次数 步骤 1 文件单词规律 空格分开 2 单词切分 3 单词的统计 k v gt k 单词 V 数量 4 打印 框架 1 单例对象 main 2 创建CONF 3 创建SC gt 读取
  • Python--matplotlib绘图可视化知识点整理

    本文作为学习过程中对matplotlib一些常用知识点的整理 方便查找 强烈推荐ipython无论你工作在什么项目上 IPython都是值得推荐的 利用ipython pylab 可以进入PyLab模式 已经导入了matplotlib库与相
  • 在nginx的配置文件中,设置故障转移的策略、、配置健康检查

    要保证客户端在访问时不出错 可以采取以下几种方法 1 使用负载均衡器 在nginx服务器的前面添加一个负载均衡器 负载均衡器可以将客户端的请求分发到多个后端服务器上 当其中一个服务器宕机时 负载均衡器会自动将请求转发到其他正常运行的服务器上
  • thinkPHP 文件上传(文件太大不成功)

    thinkPHP 文件上传 文件太大不成功 补充一下上次说的文件上传 如果我们上传的文件太大而导致失败 我们可以在 php ini 这个配置文件修改两个字段 upload max filesize 50m post max size 50m
  • centos对已存在的文件夹创建软连接

    描述 由于 目录可用空间 即将存在不够用的情况 需要将 opt data 文件夹 应用中的一些 数据会不断的在此文件夹中累加 中创建软连接 将其直到 data opt data 进而 保证 目录不用爆满 文件系统 容量 已用 可用 已用 挂
  • 【云原生进阶之PaaS中间件】第二章Zookeeper-2-安装部署

    1 Zookeeper安装配置 环境准备 一台安装有jdk的虚拟机 192 168 152 130 1 1 安装 1 1 1 下载 cd software wget http mirror bit edu cn apache zookeep