Zookeeper 安装与部署

news2025/4/26 17:43:27

Zookeeper官网

目录

  • 1 配置文件参数解读
  • 2 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

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

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

[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

[huwei@hadoop101 module]$ cd zookeeper-3.5.7/conf/
[huwei@hadoop101 conf]$ mv zoo_sample.cfg zoo.cfg

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

[huwei@hadoop101 conf]$ cd /opt/module/zookeeper-3.5.7/
[huwei@hadoop101 zookeeper-3.5.7]$ mkdir zkData

复制 zkData 的绝对路径以备用

[huwei@hadoop101 zookeeper-3.5.7]$ cd zkData/
[huwei@hadoop101 zkData]$ pwd
/opt/module/zookeeper-3.5.7/zkData

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

[huwei@hadoop101 zkData]$ cd ../conf/
[huwei@hadoop101 conf]$ vim zoo.cfg

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

在这里插入图片描述

ESC+:wq,保存退出。

(7)启动 Zookeeper

启动 Zookeeper 服务端

[huwei@hadoop101 conf]$ cd ..
[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh start

查看状态

[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 客户端

[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkCli.sh

在这里插入图片描述

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

指定本机 hadoop101

[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkCli.sh -server hadoop101:2181

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

在这里插入图片描述

(8)停止 Zookeeper

[huwei@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh stop

3 Zookeeper 分布式安装


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

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

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

增加如下配置

#######################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 的文件,

[huwei@hadoop101 zookeeper-3.5.7]$ cd zkData/
[huwei@hadoop101 zkData]$ touch myid

编辑 myid 文件

[huwei@hadoop101 zkData]$ vim myid

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

1

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

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

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

[huwei@hadoop101 module]$ cd /opt/module/
[huwei@hadoop101 module]$ xsync zookeeper-3.5.7/

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

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

[huwei@hadoop101 zookeeper-3.5.7]$ cd /home/huwei/bin
[huwei@hadoop101 bin]$ touch zk_cluster.sh

对该文件赋予执行权限

[huwei@hadoop101 bin]$ chmod 744 zk_cluster.sh

编写脚本内容

[huwei@hadoop101 bin]$ vim zk_cluster.sh
#!/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

启动集群

[huwei@hadoop101 bin]$ zk_cluster.sh start

查看集群状态

[huwei@hadoop101 bin]$ zk_cluster.sh status

停止集群

[huwei@hadoop101 bin]$ zk_cluster.sh stop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1279761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【bat】批处理脚本大全

目录 1.概述 2.变量 3.运算符 3.2.重定向运算符 3.3.多命名运算符 3.4.管道运算符 4.命令 4.1.基本命令 4.2.参数传递 4.3.查看脚本内容 4.4.注释 4.5.日期和时间 4.6.启动脚本 4.7.调用其他bat 4.8.任务管理 4.8.1.任务列表查看 4.8.2.任务终止 4.9.文件夹 …

V8引擎类型转换(VIP课程)

这一章是源于一道面试题 完成以下条件并且输出console if(a 1 && a 2 && a 3) {console.log(true) }好家伙 乍一看一个变量怎么可能等于三个值?带着疑问我们去深入了解 类型系统 在JavaScript中类型系统不同于别的语言,例如JavaSc…

API无代码开发让尘锋SCRM与营销系统集成,提高电商平台客服效率

API无代码开发的力量 随着电商平台业务的日益增长,客服系统的效率和响应速度成为了企业关注的焦点。API无代码开发的出现,为企业提供了一个高效的解决方案。API(Application Programming Interface,应用编程接口)允许不同的软件系统之间进行有…

Hdoop学习笔记(HDP)-Part.02 核心组件原理

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

c语言-联合体和枚举

文章目录 一、联合体1. 联合体类型的声明和创建2. 联合体的特点3. 联合体大小的计算4.总结 二、枚举1. 枚举类型的声明2. 枚举类型的优点3. 枚举类型的使用 一、联合体 (1) 像结构体⼀样,联合体也是由一个或者多个成员构成,这些成…

深入理解Zookeeper系列-3.Zookeeper实现原理及Leader选举源码分析

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理🔥如果感觉博主的文章还不错的话&#xff…

微服务的流量管理-服务网格

对于单体应用来说,一般只有流入和流出两种流量。而微服务架构引入了跨进程的网络通信,流量发生在服务之间。由许多服务组成了复杂的网络拓扑结构,每次请求都会产生流量。 这些流量如果没有妥善的管理,整个应用的行为和状态将会不…

SmartSoftHelp8,IIS Nginx,windows linux 高并发服务器优化配置工具

Windows IIS 性能优化配置 Windows Nginx 性能优化配置模板 Linux Nginx 性能优化配置模板 Nginx 常用命令 webconfig 优化配置详细说明 下载地址: https://pan.baidu.com/s/1zBgeYsqWnSlNgiKPR2lUYg?pwd8888

鼠标点击效果.html(网上收集6)

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>鼠标点击</title> </head><body> <script>(function () {var a_idx 0;window.onclick function (event) {var a new Array(…

DS二分查找_搜索二维矩阵

Description 使用二分查找法来判断m*n矩阵matrix中是否存在目标值target。 该矩阵有以下特性&#xff1a; 1. 每行中的整数从左到右升序排列&#xff1b; 2. 每行的第一个整数大于前一行的最后一个整数。 Input 第一行输入m和n&#xff0c;分别表示矩阵的行数和列数&#…

msyql迁移到mongodb

关系型数据库迁移到mongodb的理由 高并发需求&#xff0c;关系型数据库不容易扩展 快速迭代 灵活的json模式 大数据量需求 应用迁移难度&#xff1a; 关系型到关系 oracle-》mysql oracle -》 postgresql 关系到文档- oracle -》 mongodb 需要考虑&#xff1a; 总体架构&#…

非功能关键知识总结(一)

文章目录 一、稳定性(一)、服务级别协议1、SLA2、OLA3、UC (二)、可用性指标(三)、突发事件等级 三、质量(一)、千行代码缺陷数量(二)、软件质量模型的发展(三)、产品质量模型 四、安全(一)、网络安全 五、灾备(一)、灾备指标(二)、灾难恢复等级(三)、容灾技术分类 一、稳定性 …

JDK中lock锁的机制,其底层是一种无锁的架构实现的,公平锁和非公平锁

简述JDK中lock锁的机制&#xff0c;其底层是一种无锁的架构实现的&#xff0c;是否知道其是如何实现的 synchronized与lock lock是一个接口&#xff0c;而synchronized是在JVM层面实现的。synchronized释放锁有两种方式&#xff1a; 获取锁的线程执行完同步代码&#xff0c;…

安装selenium+chrome详解

1、创建yaml文件 创建yaml文件,命名为:docker-compose-chrome.yaml,具体内容如下: version: "3.9" services:spiderdriver:image: selenium/standalone-chrome:114.0restart: alwayshostname: spiderdrivercontainer_name: spiderdriverdeploy:resources:limit…

【STM32F103】GPIO通用输入输出口

GPIO 简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口是微控制器&#xff08;MCU&#xff09;必备的片上外设&#xff0c;可以实现微控制器与外部设备的数字交换。 STM32F103系列的芯片最多可以提供112个多功能双向IO引脚&#xff0c;但是显然…

8 9 固件库

文章目录 8.1 什么是固件库8.2 什么时候使用8.3 封装注意点8.3.1 fsl 8.4 GPIO库函数定义8.4.1 初始化结构体 gpio_pin_config_t8.4.2 定义引脚模式的枚举类型8.4.3 初始化结构体8.4.4 定义中断配置函数8.4.5 定义GPIO初始化函数8.4.6 使用函数控制GPIO8.4.7 定义 IOMUXC 外设控…

开源软件license介绍与检测

开源License介绍 通俗来讲&#xff0c;开源许可证就是一种允许软件使用者在一定条件内按照需要自由使用和修改软件及其源代码的的法律条款。借此条款&#xff0c;软件作者可以将这些权利许可给使用者&#xff0c;并告知使用限制。这些许可条款可以由个人、商业公司或非赢利组织…

Session 与 JWT 的对决:谁是身份验证的王者? (下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

vue3请求代理proxy中pathRewrite失效

问题引入 在vue3配置请求代理proxy的时候pathRewrite失效。 有这样一个例子&#xff0c;作用是为了把所有以/api开头的请求代理到后端的路径和端口上&#xff0c;在vue.config.js配置文件中 设置了代理跨域和默认端口。但是重新运行之后发现端口是改了&#xff0c;但是路径仍然…

maven篇---第一篇

系列文章目录 文章目录 系列文章目录前言一、什么是maven?二、Maven能为我们解决什么问题?三、说说maven有什么优缺点?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码…