zookeeper的安装

zookeeper的安装

一.前言

      zookeeper开源组件是为分布式应用,提供协调服务的一种解决方案。本文主要是介绍在Centos7的操作系统中,如何以单机,伪集群,集群的方式来安装部署zookeeper服务。zookeeper要求的jdk版本为1.6以上。本文假定在Centos7操作系统中已经安装了jdk,因此不在复述如何安装jdk。

二.下载安装包

      我们可以登录https://archive.apache.org/dist/zookeeper/的网址,选择相应的版本的zookeeper来进行安装。

       本文中是以zookeeper的3.9.2版本为例来进行安装。使用wget命令把相应版本的zookeeper下载到服务器上。

wget  https://archive.apache.org/dist/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz

三.解压安装包

进入到下载zookeeper安装包所在的目录下,使用tar命令对安装包进行解压。

tar -xzvf zookeeper-3.9.2-alpha.tar.gz

四.单机模式

单机模式是只有一台机器上部署一个zookeeper服务,一般是适用于测试和学习用的

1.生成zoo.cfg配置文件

       在zookeeper解压包中的conf目录下,会有一个默认的zoo_sample.cfg模板配置文件。我们一般可以从zoo_sample.cfg复制出一个zoo.cfg文件,然后在zoo.cfg文件中来修改配置项的。

       进入zookeeper-3.9.2-alpha/conf目录后,使用cp命令,从zoo_sample.cfg文件,复制并重命名一个zoo.cfg配置文件。

cp zoo_sample.cfg zoo.cfg

2.修改zoo.cfg配置文件

我们可以使用vim命令来编辑zoo.cfg文件。

vim zoo.cfg

(1).修改dataDir配置项

       dataDir是zookeeper定义存储快照文件目录的配置项。最好给dataDir设置一个新的目录。这样可以将data目录的文件移出默认的tmp目录,以防止zookeeper产生的快照文件填满了根分区。

dataDir=/opt/soft/ZooKeeper/data

(2).添加dataLogDir配置项

       dataLogDir是zookeeper定义存储事务日志文件的配置项。在官方提供的模版配置文件中,是没有dataLogDir这项的。如果不配做dataLogDir的配置,zookeeper会默认将事务日志文件也存储在dataDir 对应的目录下。

       建议是将事务日志(dataLogDir)与快照文件(dataDir)单独配置,因为当zookeeper集群在进行频繁的数据读写操作的时候,会产生大量的事务日志信息,将两类日志分开存储可以提高系统性能,同时将两类日志存在不同的存储介质上,也可以减少磁盘的压力。

dataLogDir=/opt/soft/ZooKeeper/logs

3.配置参数说明

参数名

说明

clientPort

无默认值,必须配置,不支持系统属性方式配置。当前服务器对外提供服务端口,客户通过此端口与服务器建立连接,一般设置为2181。集群中不需要统一端口,可任意配置端口。

dataDir

无默认值,必须配置。服务器存储快照文件目录。默认情况下,如果没有配置dataLogDir,那么事务日志也会存储在这个目录中。建议将事务日志目录独立配置。

tickTime

默认值:3000(ms),不支持系统属性方式配置。用于配置zookeeper中最小时间单元长度,很多运行时的时间间隔都是使用它的倍数来表示的。

initLimit

Leader Zookeeper接收集群其他服务器初始化等待最大时间(10*tickTime)。

syncLimit

Leader Zookeeper和集群其他服务器通信最大时间(5*tickTime)。

       对于其他的配置参数,我们可以以官方模版配置文件的默认参数为准,再根据项目运行的实际情况进行调整。至此单机模式的配置部署已经完成。

五.伪集群模式

       zookeeper的伪集群模式,其实是将集群中的多个zookeeper服务都部署在同一台机器上,以集群的特性来对外提供服务。

       对于伪集群模式,本文中我们将部署三个zookeeper服务。首先将下载的zookeeper安装包解压或复制三份,分别命名为z1,z2,z3。

       同以上单机模式的步骤,在z1,z2,z3三个目录下,分别创建data和logs目录,用于存放快照数据和事务日志文件。再依次进入到conf目录下,从模版文件zoo_sample.cfg复制一个zoo.cfg。将配置文件中的dataDir和dataLogDir,设置成创建的data和logs目录。

1.添加server配置项

      伪集群和集群模式中,我们都需要在zoo.cfg文件中增加一个server的配置项。server配置项的格式为:server.id=host:port1:port2。server.id配置项是指定了编号为id的zookeeper服务器使用的地址和端口号。每一个server配置项就表示集群中的一台服务器。集群中有几个服务器,就需要配置几个server配置项。

       server.id的id为Server ID,用来标识该机器在集群中的编号。id的取值范围是1-255。不同服务器其id需要保持不同。而这个id和myid文件是相关的。id值要与服务器上myid文件的内容保持一致。

每个server.id配置项的值是通过冒号分隔为了三部分:

(1)第一部分为服务器的ip地址或主机名。

(2)第二部分的port1是集群中其他机器与Leader之间通信的端口。

(3)第三部分的port2为当Leader宕机或其他故障时,集群进行重新选举Leader时使用的端口。

        由于伪集群中是将所有的zookeeper服务都部署在同一台机器上,所以所有zookeeper服务的server配置项中ip或host是一样的,只是server配置项的id和port1,port2这两个端口号不一样。

2.创建myid文件

       zookeeper中的myid文件的值和server.id中的id是一一对应的。我们需要在zookeeper的data每个目录下创建一个myid文件,然后再将服务器在集群中的编号id写入到这个文件中。server.id中的id就是myid文件的内容。

以z1为例,来说明一下如何创建myid文件:

(1).进入z1的data目录下,这个目录是我们在zoo.cfg 文件中dataDir项配置的。

(2).执行命令 echo 1 > myid。这里将1写入到新建的myid文件中。因为z1的server配置项是server.1=192.168.149.129:2222:2223。所以myid文件中的内容就是1,它对应了server.1的1。

同样对于z2,z3也是需要在data目录创建myid文件,然后分别将2,3这两个server的id写入到myid文件中。

 对于伪集群是三个zookeeper服务部署在同一台机器上,所以各个服务的zoo.cfg配置文件中的clientPort端口号也是各不同的。

3.z1的zoo.cfg配置

4.z2的zoo.cfg配置

5.z3的zoo.cfg配置

六.集群模式

       集群模式和伪集群模式的部署大致相同,由于集群模式zookeeper服务是部署在不同的机器上。相较于伪集群模式,在zoo.cfg配置文件中,server配置项中的ip就是各个服务器的ip,各不相同。

       集群模式中每个机器上的zoo.cfg文件都是相同的,而每台机器唯一不同的是server.id对应的myid文件中的数字内容不同而已。

七.启动

(1)进入zookeeper解压包的bin目录

(2)./zkServer.sh start //后台中运行

(3)./zkServer.sh start-foreground //前台中运行,可以方便查看服务器的日志信息输出。

(4)./zkServer.sh status //检查状态

(5)./zkServer.sh stop //停止

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

keil5搜索框还有左侧文件状态栏不见的问题

点击上面的window,弹出 reset view to default ,然后点击,再点击reset,就ok了

Python机器学习笔记(六、核支持向量机)

核支持向量机(kernelized support vector machine)简称SVM,支持向量机可以用于分类,也可以用于回归,分类在SVC中实现,回归在SVR中实现。 1. 线性模型与非线性特征 线性模型在低维空间中的应用非常受限&am…

线性表之单链表详解

一、概念 链表作为线性表的链式存储结构,将线性表L (a0,...ai-1,ai,ai1...an-1) 中的各元素分布在存储器的不同存储块,称为结点。结点之间通过指针建立联系 其中:data作为数据域,next作为指针域,指向ai的直…

启明智显ZX7981PC:5G时代的新选择,全屋网络无缝覆盖

在这个飞速发展的5G时代,每一个细微的科技进步都在推动着我们的生活向更加智能、便捷的方向发展。近日,启明智显再次引领科技潮流,正式发布其最新的5G CPE产品——ZX7981PC。作为继7981PG与7981PM之后的又一次迭代升级,ZX7981PC凭…

ubuntu检测是否已安装nvidia驱动以及产品类型

nvidia-sminvidia-smi 是 NVIDIA 提供的一个命令行工具,用于查看和管理 NVIDIA GPU 的状态。当你运行 nvidia-smi 命令时,它会显示当前系统中所有 NVIDIA GPU 的状态信息,包括 GPU 的使用率、温度、内存使用情况等。 有8个GPU nvcc -V查看c…

Introduction to NoSQL Systems

What is NoSQL NoSQL database are no-tabular非數據表格 database that store data differently than relational tables 其數據的存儲方式與關係型表格不同 Database that provide a mechanism機制 for data storage retrieval 檢索 that is modelled in means other than …

Javaweb web后端maven介绍作用安装

自动导入到这个项目 src是源代码 main主程序,核心代码 java是Java源代码 resources是项目配置文件 test测试相关的 maven概述 介绍 依赖在本地仓库查找,如果本地仓库有,用本地仓库的依赖,本地没有,连接中央仓库&…

MinIO分布式文件存储

一、分布式文件系统 问题引出 对于一个网站系统,若为降低成本投入,将文件存储服务和网站系统部署在同一台服务器中,访问量不大,基本不会有问题,但访问量逐渐升高,网站文件资源读取逐渐频繁,单…

SQL Server:只有MDF文件,如何附加数据库

第一步:先新建一个同名数据库,然后停止sql服务,删除新建数据库.ldf文件。 第二步:将要附加的数据库的.mdf文件覆盖刚新建的.mdf文件,并重启sql服务。 第三步:这时数据库DATA目录下只有一个.mdf文件&#xf…

《HTML 的变革之路:从过去到未来》

一、HTML 的发展历程 图片: HTML 从诞生至今,经历了多个版本的迭代。 (一)早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准,提供了表格、文字绕排和复杂数学元素显示等新特性,但因实现复杂且缺乏浏览器…

机器视觉与OpenCV--01篇

计算机眼中的图像 像素 像素是图像的基本单位,每个像素存储着图像的颜色、亮度或者其他特征,一张图片就是由若干个像素组成的。 RGB 在计算机中,RGB三种颜色被称为RGB三通道,且每个通道的取值都是0到255之间。 计算机中图像的…

网络安全创新实验

一、网络拓扑设计 二、网络主机概况 本实验一共包含4台虚拟机,分别为攻击机attacker,网关gateway,内网普通用户主机pc,内网服务器server,四台主机的详细信息如下表所示: 名称操作系统IP地址网络模式作用攻…

y3编辑器教学5:触发器2 案例演示

文章目录 一、探索1.1 ECA1.1.1 ECA的定义1.1.2 使用触发器实现瞬间移动效果 1.2 变量1.2.1 什么是变量1.2.2 使用变量存储碎片收集数量并展现 1.3 if语句(魔法效果挂接)1.3.1 地形设置1.3.2 编写能量灌注逻辑1.3.3 编写能量灌注后,实现传送逻…

016 在路由器上配置 DHCP

配置路由器端口IP地址 将路由器的端口地址配置好, 左边的网络地址是 192.168.1.0 右边的网络地址是 192.168.2.0 配置路由器的DHCP服务 打开命令窗口,进入特权模式 进入全局配置 conf t创建一个DHCP地址池; po1 是地址池的名称&#xf…

恋爱脑学Rust之并行之旅:Rayon介绍和使用

文章目录 一、开启爱情的依赖之旅(安装 Rayon)二、甜蜜瞬间的并行享受(基本数据并行操作)(一)共享美好时光(par_iter 方法)(二)分块珍藏回忆(par_…

【数据库系列】PostgreSQL 数据库连接

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

中介者模式的理解和实践

一、中介者模式概述 中介者模式(Mediator Pattern),也称为调解者模式或调停者模式,是一种行为设计模式。它的核心思想是通过引入一个中介者对象来封装一系列对象之间的交互,使得这些对象不必直接相互作用,从…

吸烟抽烟行为识别数据集-超高识别率,支持YOLO,COCO,VOC格式的标注,10162张各种姿势场景下的吸烟图片

吸烟抽烟行为识别数据集-超高识别率,支持YOLO,COCO,VOC格式的标注,10162张各种姿势场景下的吸烟图片 数据集分割 训练组91% 9279图片 有效集5% 507图片 测试集4% 376图片 预处理 自动定…

【开源】基于SpringBoot框架的房屋租赁系统 (计算机毕业设计)+万字毕业论文 T020

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…

C++20 标准概念

1. 所有标准概念的概述 “类型和对象基本概念”表列出了类型和对象的基本概念。 “范围、迭代器和算法概念”表列出了范围、视图、迭代器和算法的概念。 “辅助概念”表列出的概念主要用作其他概念的构建块,通常不会让应用程序开发者直接使用。 头文件和命名空间 …