Zookeeper 安装与部署

Zookeeper官网

目录

  • [1 配置文件参数解读](#1 配置文件参数解读)
  • [2 Zookeeper 单点安装](#2 Zookeeper 单点安装)
  • [3 Zookeeper 分布式安装](#3 Zookeeper 分布式安装)

1 配置文件参数解读

Zookeeper 中的配置文件 zoo.cfg 中参数含义解读如下:

(1)tickTime =2000:通信心跳数,Zookeeper 服务器与客户端心跳时间,单位毫秒。

Zookeeper 使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳,时间单位为毫秒。

它用于心跳机制,并且设置 最小的 session 超时时间为两倍心跳时间。(session 的最小超时时间是2*tickTime)

(2)initLimit =10:LF初始通信时限

集群中的 Follower 跟随者服务器与 Leader 领导者服务器之间 初始连接 时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。

(3)syncLimit =5:LF同步通信时限

集群中 Leader 与 Follower 之间的最大响应时间单位,假如响应超过 syncLimit * tickTime,Leader 认为 Follwer 死掉,从服务器列表中删除 Follwer。

(4)dataDir:数据文件目录+数据持久化路径

主要用于保存 Zookeeper 中的数据。

(5)clientPort =2181:客户端连接端口

监听客户端连接的端口。

2 Zookeeper 单点安装

(1)把软件包上传的 Linux 的 /opt/software

(2)解压 Zookeeper 到 /opt/module

powershell 复制代码
[huwei@hadoop101 ~]$ tar -zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

(3)将解压后的目录名称修改一下(选做)

powershell 复制代码
[huwei@hadoop101 ~]$ cd /opt/module/
[huwei@hadoop101 module]$ mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

(4) 将 Zookeeper 的安装目录下 conf/zoo_sample.cfg 文件改名为 zoo.cfg

powershell 复制代码
[huwei@hadoop101 module]$ cd zookeeper-3.5.7/conf/
[huwei@hadoop101 conf]$ mv zoo_sample.cfg zoo.cfg

(5) 在 Zookeeper 的安装目录下创建一个新的目录,作为 Zookeeper 的数据持久化目录

powershell 复制代码
[huwei@hadoop101 conf]$ cd /opt/module/zookeeper-3.5.7/
[huwei@hadoop101 zookeeper-3.5.7]$ mkdir zkData

复制 zkData 的绝对路径以备用

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ cd zkData/
[huwei@hadoop101 zkData]$ pwd
/opt/module/zookeeper-3.5.7/zkData

(6)修改 zoo.cfg 配置文件

powershell 复制代码
[huwei@hadoop101 zkData]$ cd ../conf/
[huwei@hadoop101 conf]$ vim zoo.cfg

将刚刚复制的 zkData 的绝对路径粘贴在下方位置处

ESC+:wq,保存退出。

(7)启动 Zookeeper

启动 Zookeeper 服务端

powershell 复制代码
[huwei@hadoop101 conf]$ cd ..
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh start

查看状态

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: standalone

启动 Zookeeper 客户端

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkCli.sh

Zookeeper 服务的默认端口号:2181,不指定主机时默认连接本地,退出客户端命令:quit

指定本机 hadoop101

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkCli.sh -server hadoop101:2181

查看一下 Zookeeper 的服务端和客户端对应的进程

(8)停止 Zookeeper

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh stop

3 Zookeeper 分布式安装

在 hadoop101、hadoop102 和 hadoop103 三个节点上部署Zookeeper。接下来,我将在我上述单点安装的基础上进行集群搭建。

注意:如果不是第一次搭建集群,那么就把 Zookeeper 安装目录下的 zkData目录删除,并且把 logs 目录也删除。

(1)修改配置文件 zoo.cfg

增加如下配置

powershell 复制代码
#######################cluster##########################
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888

ESC+:wq,保存退出。

配置参数 server.A=B:C:D 解读

  • A:是一个数字,表示这个是第几号服务器;
  • B:是这个服务器的地址;
  • C:是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
  • D:是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

(2)配置服务器编号

在 Zookeeper 的安装目录的 zkData 目录下创建一个 myid 的文件,

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ cd zkData/
[huwei@hadoop101 zkData]$ touch myid

编辑 myid 文件

powershell 复制代码
[huwei@hadoop101 zkData]$ vim myid

在文件中添加与 server 对应的编号

powershell 复制代码
1

那么现在 Zookeeper 分布式安装中的hadoop101就配置好了

(3)将hadoop101 整个 Zookeeper 的安装目录分发到其他机器

这里我使用前面写好的分发脚本,具体参见 大数据技术学习笔记(三)------ Hadoop 的运行模式

powershell 复制代码
[huwei@hadoop101 module]$ cd /opt/module/
[huwei@hadoop101 module]$ xsync zookeeper-3.5.7/

(4)在不同机器上修改 myid 文件中的值

(5)自定义群启群停 Zookeeper服务的脚本

powershell 复制代码
[huwei@hadoop101 zookeeper-3.5.7]$ cd /home/huwei/bin
[huwei@hadoop101 bin]$ touch zk_cluster.sh

对该文件赋予执行权限

powershell 复制代码
[huwei@hadoop101 bin]$ chmod 744 zk_cluster.sh

编写脚本内容

powershell 复制代码
[huwei@hadoop101 bin]$ vim zk_cluster.sh
powershell 复制代码
#!/bin/bash

#检验参数
if [ $# -lt 1 ]
then
 echo '参数不能为空!!!'
 exit 
fi

#循环遍历每一台机器,分别启动或者停止ZK服务

for host in hadoop101 hadoop102 hadoop103
do
  case $1 in
   "start")
	echo "*****************start $host zookeeper****************"
		ssh $host /opt/module/zookeeper-3.5.7/bin/zkServer.sh $1
   ;;
	
   "stop")
	echo "*****************stop $host zookeeper****************"
		ssh $host /opt/module/zookeeper-3.5.7/bin/zkServer.sh $1
   ;;
  
   "status")
	echo "*****************status $host zookeeper****************"
		ssh $host /opt/module/zookeeper-3.5.7/bin/zkServer.sh $1
   ;;
  
   *)
	   echo '参数有误!!!'
	   exit
   ;;
  esac
done

启动集群

powershell 复制代码
[huwei@hadoop101 bin]$ zk_cluster.sh start

查看集群状态

powershell 复制代码
[huwei@hadoop101 bin]$ zk_cluster.sh status

停止集群

powershell 复制代码
[huwei@hadoop101 bin]$ zk_cluster.sh stop
相关推荐
爱丽_2 小时前
Redis 分布式锁:SET NX、过期时间、续租、可重入、Redlock 与坑
数据库·redis·分布式
ok_hahaha5 小时前
java从头开始-黑马点评-分布式锁-redis实现基础版
java·redis·分布式
传感器与混合集成电路5 小时前
法珀干涉与光栅补偿:井下压力温度一体化光纤监测技术
分布式
@insist1236 小时前
数据库系统工程师-分布式数据库与数据仓库核心考点及应用体系
数据库·数据仓库·分布式·软考·数据库系统工程师·软件水平考试
XDHCOM7 小时前
TP5框架Redis分布式缓存实战,解决高并发场景下的数据一致性问题
redis·分布式·缓存
Fzuim7 小时前
从CLI到分布式智能体:重新理解AI Agent的演进路径与工程现实
人工智能·分布式·ai·agent·agentic
_院长大人_10 小时前
Spring Boot 3.3 + Atomikos 分布式事务日志路径配置踩坑记录
spring boot·分布式·后端
Data 实验室10 小时前
TaskPyro “小龙虾版本”专业爬虫管理平台来了:AI+分布式+IM 机器人,一套搞定企业级爬虫调度
人工智能·分布式·爬虫
想你依然心痛10 小时前
HarmonyOS 5.0教育行业解决方案:基于分布式能力的沉浸式智慧课堂系统
分布式·wpf·harmonyos
霖霖总总11 小时前
[Redis小技巧29]从 Setnx 到 Redlock:Redis 分布式锁的演进之路与生产级实践
数据库·redis·分布式