Zookeeper搭建

目录

前言

初了解Zookeeper

搭建

准备

配置Zookeeper


前言

今天来介绍Zookeeper的搭建,其实Zookeeper的搭建很简单,但是为什么还要单独整一节呢,这就不得不先了解Zookeeper有什么功能了!而且现在很火的框架也离不开Zookeeper,比如说HaddopHA高可用框架,很多在Linux里面运行的Hbase数据库,Kafka也离不开Zookeeper所以在搭建前我们先来了解一下Zookeeper

初了解Zookeeper

首先我们先看来自Zookeeper官网对它的解释:

Apache ZooKeeper是一个开源的分布式协调服务,它为分布式应用程序提供了一系列的服务,包括配置维护、命名、分布式同步和组服务等。ZooKeeper的目标是为分布式应用程序提供一个高性能、高可用且具有严格顺序访问控制能力的分布式协调存储服务。它通过一个简单的接口提供了这些服务,使得开发人员无需从头开始编写这些服务,从而可以专注于实现应用程序的核心业务逻辑。

ZooKeeper使用Zab这种一致性协议来保证数据的一致性,这使得ZooKeeper成为一个经典的分布式数据一致性解决方案。此外,ZooKeeper也提供了丰富的API和工具,使得开发人员可以轻松地集成和使用ZooKeeper。

ZooKeeper是一个集中式的服务,它维护了一个类似于文件系统的目录树结构,用于存储和管理分布式应用程序的配置信息和状态信息。通过ZooKeeper,分布式应用程序可以实现集群管理、领导选举、分布式锁等功能,从而提高了系统的可靠性和性能。

那么简单来说就是,Apache ZooKeeper是一个功能强大、易于使用的分布式协调服务,它为分布式应用程序提供了高效、可靠、可扩展的协调机制,是构建大规模分布式系统的重要基础设施之一。从设计模式的角度来看Zookeeper是一个基于观察者模式设计的分布式服务管理框架。它负责存储和管理数据,并接受观察者的注册。一旦这些数据的状态发生变化,Zookeeper将负责通知已经在Zookeeper上注册的观察者,使其做出相应的反应。即 管理者

Zookeeper的核心特点是其集群结构,由一个领导者(Leader)和多个跟随者(Follower)组成。集群中只要有半数以上的节点存活,Zookeeper集群就能正常服务。此外,每个Server保存一份相同的数据副本,确保Client无论连接到哪个Server,数据都是一致的,这保证了Zookeeper的全局数据一致性

了解完了Zookeeper的大概之后,我们就可以进入搭建环节了

搭建

准备

紧接上一章hadoop完全分布式的搭建

我们继续使用上一章的集群即可

配置Zookeeper

与之前的步骤也大差不差

 解压

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

配置环境

#ZOOKEPPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin

配置文件

在/zookeeper-3.5.7/conf目录下的zoo_sample.cfg文件

修改zoo_sample.cfg文件变为zoo.cfg,并修改其内容,并添加内容

修改其名字

 mv zoo_sample.cfg zoo.cfg

修改其内容

dataDir=/opt/module/zookeeper-3.5.7/zkData

添加

server.1=bigdata1:2888:3888
server.2=bigdata2:2888:3888
server.3=bigdata3:2888:3888

在/zookeeper-3.5.7目录下创建zkData

mkdir zkData

在zkData目录下创建myid文件

touch myid
vim myid
#或者直接使用vim myid命令,vim一个不存在的文件,系统会自动为你创建这个文件

三台服务器中的myid的内容分别是

1
2
3

分发

和之前一样

xsync /opt/module/
xsync /etc/profile

xsync脚本上一章有,自行查看提取,xsync底层逻辑用的是scp和rsync

验证:

三台服务器分别启动,一定要先分别启动才可以去查看状态

./zkServer.sh start

三台服务器分别查看状态

./zkServer.sh status

出现一个领导者(Leader)和多个跟随者(Follower)就算成功

补充:

​​​​​​如果三台节点的zookeeper启动都没问题,但是查看状态的时候报错

报错信息为:Error contacting service. It is probably not running. 到这里不要担心,这是个常见问题,我们要试着去解决这个问题

1.防火墙是不是没有关闭

输入以下命令,查看防火墙状态

systemctl status firewalld

如果防火墙正在运行就关闭它,输入以下命令,关闭防火墙

systemctl stop firewalld

输入以下命令 ,禁止防火墙随着系统启动而启动,如果不设置每当你启动节点的时候都会自动帮你开启防火墙,很多功能都实现不了,在学习阶段一定要设置

systemctl disable firewalld

再启动Zookeeper,查看状态,一般就成功了。有一般就会有特殊情况

2.端口被占用导致

我们的端口是 2181

输入以下命令,检查端口2181是否被占用 

netstat -apn | grep 2181

如果有进程占用了2181端口,输入以下命令,杀死 带编号的进程(这里编号拟为14979)

kill -9 14979
  •  -9:是强制杀死,不管你是什么,非常危险,看准在删,因为有的进程一旦杀死就起不来了

再输入检查命令,看是否有占用。若有继续删除,若没有则重新启动Zookeeper

到这里了基本上也不会有什么问题了

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

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

相关文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的夜间车辆检测系统(深度学习代码+UI界面+训练数据集)

摘要:开发夜间车辆检测系统对于自动驾驶技术具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个夜间车辆检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5,展示了不同模型间…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的木材表面缺陷检测系统(深度学习+Python代码+UI界面+训练数据集)

摘要:开发高效的木材表面缺陷检测系统对于提升木材加工行业的质量控制和生产效率至关重要。本篇博客详细介绍了如何运用深度学习技术构建一个木材表面缺陷检测系统,并提供了完整的实现代码。该系统采用了强大的YOLOv8算法,并对YOLOv7、YOLOv6…

VUE_nuxt启动只能通过localhost访问,ip访问不到:问题解决

修改项目根目录下的 package.json "config": {"nuxt": {"host": "0.0.0.0","port": "3000"} } 这样项目启动后就可以通过ip进行访问了

保研复习数据结构记(7)--散列查找(哈希表)

哈希表有什么特点?数据元素的关键字与其存储地址直接相关(通过哈希函数相关),典型的用空间换时间的算法处理冲突的方法?拉链法(链地址法),开放定址法,再散列法什么是查找…

mac idea快捷键记录

1.查看接口有多少的实现类,选中下面的这个类,然后commandoptionB 即可。

【JavaEE Spring 项目】消息队列的设计

消息队列的设计 一、消息队列的背景知识二、需求分析核心概念⼀个⽣产者, ⼀个消费者N 个⽣产者, N 个消费者Broker Server 中的相关概念核⼼ API交换机类型 (Exchange Type)持久化⽹络通信消息应答 三、 模块划分四、 项⽬创建五、创建核心类创建 Exchange创建 MSGQUeue创建 B…

【位运算】【脑筋急转弯】2749. 得到整数零需要执行的最少操作数

作者推荐 视频算法专题 本文涉及知识点 2749. 得到整数零需要执行的最少操作数 给你两个整数:num1 和 num2 。 在一步操作中,你需要从范围 [0, 60] 中选出一个整数 i ,并从 num1 减去 2i num2 。 请你计算,要想使 num1 等于 …

对GIS与游戏引擎(UE4 或 U3D)结合的看法

GIS与游戏引擎结合,这在6年前就已经很多公司在进行探索了,经过这几年的发展,结合当前的政策,从以下几方面说一下我的看法: 1.GIS客户都是特殊单位及领域。2018年后,国内已经对国产化有明确要求了&#xff0…

Docker进阶:深入了解容器数据卷

Docker进阶:深入了解容器数据卷 一、前言二、容器数据卷的作用三、容器数据卷的使用方法四、实战--使用docker部署前端项目(数据卷挂载)4.1 重要:准备工作,先在本地创建挂载目录4.2 启动一个临时的nginx容器&#xff0…

pytorch(九)卷积神经网络

文章目录 卷积神经网络全连接神经网络与卷积神经网络的区别概念性知识mnist数据集(卷积神经网络) GoogLeNetInception 残差网络ResNet残差块结构 稠密连接网络网络结构 卷积神经网络 全连接神经网络与卷积神经网络的区别 全连接神经网络是一种最为基础的前馈神经网络&#xf…

ChatGPT Prompt 的原理总结

ChatGPT Prompt 的原理总结 ChatGPT Prompt 是 OpenAI 开发的大型语言模型 ChatGPT 的一种使用方式。通过 Prompt,用户可以引导 ChatGPT 生成特定内容,例如回答问题、写故事、写代码等等。 Prompt 的原理 Prompt 本质上是一段文本,它告诉 C…

处理json异常问题,由于发送kafka消息是一个字符串,等到消费时json字符串会有多个““引号,故需要先处理json再转对象

发送一个正确的json对象 发送kafka消息也是一个json传,也没问题 等到消费kafka时,也能接收到一个json字符串但是会多一个 " 引号, 就会导致json转对象失败所以需要先去除 开通和结尾的 " 引号 去除后的json 就是一个正常的json&…

河北专升本(C语言编程题)

一:基础算法原理 1. 冒泡排序 原理:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 以从小到大排序为例,第一轮比较后,所有数中最大的…

Linux进程概念(2)

一、进程状态 Linux的进程状态实际上就是 struct task_struct 结构体中的一个变量 1.1状态汇总 其中,Linux 状态是用数组储存的,如下: static const char * const task_state_array[] { "R (running)", // 0 …

【Web世界探险家】打开Web世界的大门

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ &…

唯众物联网+地理科学交付云南师范大学地理学部教学实验室项目

近日,云南师范大学地理学部教学实验室建设项目顺利交付。该项目的成功落地,标志着物联网技术与地理科学教育的深度融合,为云南师范大学的地理教学提供了全新的教学平台与资源。该项目以物联网技术为核心,结合地理科学的特点&#…

蓝桥杯算法错题记录-基础篇

文章目录 本文还在跟新,最新跟新时间3/11!!! 格式一定要符合要求,(输入,输出格式)1. nextInt () next() nextLine() 的注意事项2 .数的幂 a^2等3.得到最大长度(最大...&a…

卡尔曼滤波器笔记——最详细

笔记来源— 卡尔曼滤波算法原理及代码实现!https://www.bilibili.com/video/BV1WZ4y1F7VN/?spm_id_from333.337.search-card.all.click&vd_source8d55784dc9c7530bc9e3fa220380be56 简单介绍一下 现在我们就是不知道是距离多少,就需要用到这个卡尔…

如何将应用一键部署至多个环境?丨Walrus教程

在 Walrus 平台上,运维团队在资源定义(Resource Definition)中声明提供的资源类型,通过设置匹配规则,将不同的资源部署模板应用到不同类型的环境、项目等。与此同时,研发人员无需关注底层具体实现方式&…

CSS元素显示模式

CSS元素显示模式 定义&#xff1a;元素显示模式是指元素&#xff08;即标签&#xff09;以什么方式进行显示。 HTML元素分为块元素和行内元素 块元素 常见块元素 &#xff08;下列仅举出部分&#xff09; <h1>~<h6>、<p>、<div>、<ul>、<…