企业生产环境-麒麟V10(ARM架构)操作系统部署Zookeeper单节点集群版

news2024/11/16 20:51:39

前言:ZooKeeper是一个分布式协调服务,它为分布式应用提供一致性服务,是Apache Hadoop的子项目。它被设计为易于编程,同时具有高性能和高可靠性。ZooKeeper提供了一个简单的接口和一些基本的文件系统操作,使得开发者能够快速地构建分布式应用。

以下是ZooKeeper的一些关键特性和概念:

  1. 一致性:ZooKeeper保证了分布式环境中数据的一致性。它使用原子操作来确保在分布式系统中数据的一致性。

  2. 可靠性:ZooKeeper通过数据复制和容错机制来保证服务的可靠性。即使部分服务器出现故障,ZooKeeper也能继续提供服务。

  3. 有序性:ZooKeeper能够保证操作的顺序性,即使在分布式环境中,也能确保操作按照特定的顺序执行。

  4. 实时性:ZooKeeper提供了实时的数据更新和监控机制,客户端可以实时获取到数据的变化。

  5. 层次命名空间:ZooKeeper使用层次化的命名空间(类似于文件系统的路径),这使得数据的组织和管理更加直观和方便。

  6. 数据模型:ZooKeeper的数据模型类似于文件系统,但它的数据节点(ZNodes)可以存储少量的数据(默认不超过1MB)。

  7. 会话管理:客户端与ZooKeeper服务器之间建立的会话可以保持一段时间,期间客户端可以执行各种操作。

  8. ACL(访问控制列表):ZooKeeper支持细粒度的权限控制,可以对不同的ZNode设置不同的访问权限。

  9. 分布式同步:ZooKeeper提供了分布式锁、队列等同步原语,帮助分布式系统中的节点协调操作。

  10. Watcher机制:ZooKeeper允许客户端注册Watcher来监听ZNode的变化,当ZNode发生变化时,ZooKeeper会通知客户端。

ZooKeeper的应用场景非常广泛,包括但不限于:

  • 配置管理:在分布式系统中动态地管理配置信息。
  • 命名服务:为分布式系统中的服务提供命名和发现机制。
  • 分布式锁:在分布式系统中实现锁的功能,以避免多个节点同时执行相同的操作。
  • 集群管理:管理集群中的节点状态,如选举主节点等。
  • 队列管理:实现分布式队列,用于任务分发和负载均衡。

ZooKeeper通常作为大型分布式系统的基础设施之一,为系统提供必要的协调和同步服务。

部署zk3.9.2单机:

安装zk,需要jdk环境,参考博客xc安装jdk篇

第一步:上传apache-zookeeper-3.9.2-bin.tar.gz包
使用ssh终端工具登录到Zookeeper服务器上。本例中安装在/mpjava目录下

第二步:配置zookeeper
1、根据zookeeper服务器在zookeeper集群的顺序,建立zookeeper实例目录。(zookeeper集群必须是奇数台)
例如:zookeeper集群有三台服务器,本服务器是第1台服务器,则在/mpjava目录下创建目录zookeeper-3.9.2,依次类推。
命令:mkdir /mpjava/zookeeper-3.9.2
2、在zookeeper-3.9.2实例目录下创建data、dataLog
命令:mkdir data dataLog
3、在data目录下创建myid文件,填入服务实例的顺序
例如本服务器是第1台服务器,则在myid中填入1,依次类推。
4、将zookeeper-3.9.2-bin.tar.gz解压到zookeeper-3.9.2目录下面
命令:tar -zxvf zookeeper-3.9.2-bin.tar.gz
5、将/mpjava/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin/conf/zoo_sample.cfg文件复制为zoo.cfg文件
命令:cd /mpjava/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin/conf/ && cp zoo_sample.cfg zoo.cfg
6、按照下面的说明,编辑zoo.cfg文件,并保存

# The number of milliseconds of each tick											
tickTime=2000																	
# The number of ticks that the initial 												
# synchronization phase can take													
initLimit=10																	
# The number of ticks that can pass between 										
# sending a request and getting an acknowledgement									
syncLimit=5																	
# the directory where the snapshot is stored.										
dataDir=/mpjava/zookeeper-3.9.2/data												
dataLogDir=/mpjava/zookeeper-3.9.2/dataLog						
maxClientCnxns=5000															
4lw.commands.whitelist=*														
# the port at which the clients will connect											
clientPort=2181    (建议默认端口)
server.1=10.0.0.8:2888:3888		

注释:

dataDir目录为本zookeeper实例的data目录										
dataLogDir目录为本zookeeper实例的dataLogDir目录								
clientPort为客户端连接端口,保持为2181不改变。								
server.1中的1为实例顺序,根据zookeeper实例序号,ip、port保持为127.0.0.1:2888:3888。

第三步:输入下面命令,执行zookeeper目录bin/zkServer.sh,启动zookeeper
命令:./zkServer.sh start
命令:jps

启动成功!
参考命令:

停止 ZooKeeper:        ./zkServer.sh stop
查看 ZooKeeper状态:   ./zkServer.sh status
查看 ZooKeeper 服务器的日志: tail -f $ZOOKEEPER_HOME/logs/zookeeper.log

配置单节点开机自启:
命令:vim /etc/rc.d/rc.local
添加:

export JAVA_HOME=/usr/java/jdk1.8.0_421
export PATH=$JAVA_HOME/bin:$PATH
touch /var/lock/subsys/local
/mpjava/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin/bin/./zkServer.sh start

启动 rc-local:
命令:systemctl restart rc-local
命令:systemctl status rc-local
测试:export JAVA_HOME=""
命令:/etc/rc.d/rc.local start
然后reboot

部署zk3.9.2集群:

安装zk,需要jdk环境,参考博客xc安装jdk篇

部署准备工作:
第一步:修改 /etc/hosts文件
三节点:vim /etc/hosts
添加:

10.0.0.1     GH-PROD-MP-1
10.0.0.2     GH-PROD-MP-3
10.0.0.3     GH-PROD-MP-2

第二步:安装ntpdate并配置时钟同步

sudo yum update
sudo yum install ntpdate
时钟同步命令:ntpdate pool.ntp.org

第三步:关闭防火墙
修改vim /etc/sysconfig/selinux
原文件:SELINUX=permissive

修改设置 SELINUX=disabled
命令:systemctl disable firewalld
命令:systemctl stop firewalld

**第四步:将部署组件解压缩分发到各个节点 **
命令: mkdir /usr/lib/hadoop
命令: tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz
命令: mv apache-zookeeper-3.9.2-bin zookeeper-3.9.2

第六步:修改环境变量(即在文件~/.bash_profile尾部追加下面的声明语句)
命令:vim ~/.bash_profile
export ZOOKEEPER_HOME=/usr/lib/hadoop/zookeeper-3.9.2

export PATH=$PATH:$ZOOKEEPER_HOME/bin									
export ZOO_LOG_DIR=/var/hadoop/zk/logs	

第六步:重启服务器
命令:reboot

部署zookeeper 集群 :
第一步:创建目录
1、创建临时目录/var/hadoop/zk/tmp(每个节点都需要配置)
2、创建日志目录/var/hadoop/zk/logs(每个节点都需要配置)
3、创建数据节点目录/var/hadoop/zk/data (每个节点都需要配置)
命令:mkdir -p /var/hadoop/zk/tmp /var/hadoop/zk/logs /var/hadoop/zk/data

第二步:修改$ZOOKEEPER_HOME/conf/zoo.cfg(在 GH-PROD-MP-1)
从模板zook_sample.cfg 复制一份配置文件zoo.cfg
命令:cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
修改配置文件:

tickTime=6000			
dataDir=/var/hadoop/zk/data		#数据存储路径
dataLogDir=/var/hadoop/zk/logs	    #日志路径	
autopurge.purgeInterval=1			#快照自动清理频率,单位:小时		
autopurge.snapRetainCount=3		#保存快照数量	
server.0=GH-PROD-MP-1:2888:3888
server.1=GH-PROD-MP-2:2888:3888
server.2=GH-PROD-MP-3:2888:3888	

第三步:编辑myid

GH-PROD-MP-1执行:echo 0 > /var/hadoop/zk/data/myid
GH-PROD-MP-2执行:echo 1 > /var/hadoop/zk/data/myid
GH-PROD-MP-3执行:echo 2 > /var/hadoop/zk/data/myid

第五步:同步配置文件到集群到其他节点(在 GH-PROD-MP-1)
命令:tar -czf conf.tar.gz conf/
命令:scp -r $ZOOKEEPER_HOME/conf.tar.gz GH-PROD-MP-2:$ZOOKEEPER_HOME/
命令:scp -r $ZOOKEEPER_HOME/conf.tar.gz GH-PROD-MP-3:$ZOOKEEPER_HOME/

第六步:启动zookeeper集群
1、在GH-PROD-MP-1,GH-PROD-MP-2,GH-PROD-MP-3分别执行启动命令:zkServer.sh start
2、验证集群启动成功,分别输入:jps
GH-PROD-MP-1

GH-PROD-MP-2

GH-PROD-MP-3

配置开机自动:
这里推荐几种不同方法(这里一和二不写具体配置了,优先推荐方法二,便于运维管理),如果无法生效就用方法三:

方法一:crontab -e
方法二:/etc/systemd/system/zookeeper.service

方法三:
命令:vim /etc/rc.d/rc.local
添加:

export JAVA_HOME=/usr/java/jdk1.8.0_421
export PATH=$JAVA_HOME/bin:$PATH
touch /var/lock/subsys/local

#!/bin/sh -e
if ! pgrep -x "zkServer.sh" > /dev/null
then
    /usr/lib/hadoop/zookeeper-3.9.2/bin/zkServer.sh start
fi
exit 0

加执行权限: chmod +x /etc/rc.d/rc.local
参考命令,启动rc-local:systemctl restart rc-local
查看 rc-local状态:systemctl status rc-local
然后reboot验证

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

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

相关文章

vue3 中直接使用 JSX ( lang=“tsx“ 的用法)

1. 安装依赖 npm i vitejs/plugin-vue-jsx2. 添加配置 vite.config.ts 中 import vueJsx from vitejs/plugin-vue-jsxplugins 中添加 vueJsx()3. 页面使用 <!-- 注意 lang 的值为 tsx --> <script setup lang"tsx"> const isDark ref(false)// 此处…

深度学习服务器租赁AutoDL

1. 根据需要选择租用的显卡 算力市场 1.1 显卡选择 1.2 环境配置 2. 服务器使用 2.1 上传文件 2.2 调试环境 2.3 跑代码 python train.py && /usr/bin/shutdown # && /usr/bin/shutdown表示代码成功运行结束后&#xff0c;自动关机3. 省钱绝招 省钱绝招 …

IDEA部署AI代写插件

前言 Hello大家好&#xff0c;当下是AI盛行的时代&#xff0c;好多好多东西在AI大模型的趋势下都变得非常的简单。 比如之前想画一幅风景画得先去采风&#xff0c;然后写实什么的&#xff0c;现在你只需描述出你想要的效果AI就能够根据你的描述在几分钟之内画出一幅你想要的风景…

【大数据技术基础 | 实验十】Hive实验:部署Hive

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤&#xff08;一&#xff09;安装部署&#xff08;二&#xff09;配置HDFS&#xff08;三&#xff09;启动Hive 六、实验结果&#xff08;一&#xff09;启动结果&#xff08;二&#xff09;Hive基…

Flume1.9.0自定义Sink组件将数据发送至Mysql

需求 1、将Flume采集到的日志数据也同步保存到MySQL中一份&#xff0c;但是Flume目前不支持直接向MySQL中写数据&#xff0c;所以需要用到自定义Sink&#xff0c;自定义一个MysqlSink。 2、日志数据默认在Linux本地的/data/log/user.log日志文件中&#xff0c;使用Flume采集到…

Onlyoffice配置一 JWT認證

案例 使用官網給c# MVC的例子&#xff0c;主要在版本7.2之後&#xff0c;默認加入JWT認證&#xff0c;docker版本尚且可以在创建的时候使用默认的指令避开&#xff0c;但是在exe版本&#xff0c;即使配置为false&#xff0c;重启之后也会默认开启。 简单说一下如何配置 配置J…

ZeroSSL HTTPS SSL证书ACMESSL申请3个月证书

目录 一、引言 二、准备工作 三、申请 SSL 证书 四、证书选型 五、ssl重要性 一、引言 目前免费 Lets Encrypt、ZeroSSL、BuyPass、Google Public CA SSL 证书&#xff0c;一般免费3-6个月。从申请难易程度分析&#xff0c;zerossl申请相对快速和简单&#xff0c;亲测速度非…

MySql 日期周处理方式

MySql 日期周处理方式 最近在做数仓相关工作&#xff0c;最近遇到 几个问题&#xff0c; 1、计算指定日期是一年中的第几周&#xff0c;周一为周的第一天 2、计算周的开始时间&#xff0c;结束时间 3、计算周对应的年 比如 2023-01-01 WEEKOFYEAR(2023-01-01) 是2022年的52周&…

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56

STM32 BootLoader 刷新项目 (十) Flash擦除-命令0x56 1. STM32F407 BootLoader 中的 Flash 擦除功能详解 在嵌入式系统中&#xff0c;BootLoader 的设计是非常关键的部分&#xff0c;它负责引导主程序的启动、升级以及安全管理。而在 STM32F407 等 MCU 上实现 BootLoader&…

【Homework】【5】Learning resources for DQ Robotics in MATLAB

Lesson 5 代码-TwoDofPlanarRobot.m 表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数&#xff0c;以及在二维空间中绘制机器人的函数。 classdef TwoDofPlanarRobot%TwoDofPlanarRobot - 表示一个 2 自由度平面机器人类…

Uniapp 引入 Android aar 包 和 Android 离线打包

需求&#xff1a; 原生安卓 apk 要求嵌入到 uniapp 中&#xff0c;并通过 uniapp 前端调起 app 的相关组件。 下面手把手教你&#xff0c;从 apk 到 aar&#xff0c;以及打包冲突到如何运行&#xff0c;期间我所遇到的问题都会 一 一 进行说明&#xff0c;相关版本以我文章内为…

你可以通过以下步骤找到并打开 **Visual Studio 开发者命令提示符**:

你可以通过以下步骤找到并打开 Visual Studio 开发者命令提示符&#xff1a; 1. 通过开始菜单查找 打开 开始菜单&#xff08;点击屏幕左下角的 Windows 图标&#xff09;。在搜索框中输入 Developer Command Prompt。你应该看到以下几种选项&#xff08;具体取决于你的 Visu…

北京大学c++程序设计听课笔记101

基本概念 程序运行期间&#xff0c;每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址&#xff08;也称“入口地址”&#xff09;。我们可以将函数的入口地址赋给一个指针变量&#xff0c;使该指针变量指向该函数。然后通过指针变量就可以调用这个…

(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

来源论文iclr2024 论文地址&#xff1a;https://arxiv.org/abs/2405.14616 源码地址&#xff1a; https://github.com/kwuking/TimeMixer 背景 数据是有连续性&#xff0c;周期性&#xff0c;趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为&#xff…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录&#xff1a;★★★★尤其注意&#xff1a;引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录&#xff1a; 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

【论文分享】基于街景图像识别和深度学习的针对不同移动能力老年人的街道步行可达性研究——以南京成贤街社区为例

全球老龄化趋势加剧, 许多城市中老年人数量不断增加&#xff0c;而现有街道和社区基础设施往往未能满足其步行安全和便利需求。本次我们给大家带来一篇SCI论文的全文翻译&#xff0c;该论文通过探讨不同步行能力的老年人对城市步行环境的需求&#xff0c;提供了关于如何改善城市…

LM2 : A Simple Society of Language Models Solves Complex Reasoning

文章目录 题目摘要简介相关工作方法论实验结果结论局限性 题目 LM2&#xff1a;简单的语言模型社会解决复杂推理问题 论文地址&#xff1a;https://aclanthology.org/2024.emnlp-main.920/ 项目地址&#xff1a; https://github.com/LCS2-IIITD/Language_Model_Multiplex 摘要…

【因果分析方法】MATLAB计算Liang-Kleeman信息流

【因果分析方法】MATLAB计算Liang-Kleeman信息流 1 Liang-Kleeman信息流2 MATLAB代码2.1 函数代码2.2 案例参考Liang-Kleeman 信息流(Liang-Kleeman Information Flow)是由 Liang 和 Kleeman 提出的基于信息论的因果分析方法。该方法用于量化变量之间的因果关系,通过计算信息…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod手机使用管理软件

软件开发环境及开发工具&#xff1a; 数据库管理工具&#xff1a;phpstudy/Navicat或者phpstudy/sqlyog 开发工具&#xff1a;Android Studio 后台管理系统涉及技术&#xff1a; 后台使用框架&#xff1a;Springboot 前端使用技术&#xff1a;Vue,HTML5,CSS3、JavaScript等…

(三十三)队列(queue)

文章目录 1. 队列&#xff08;queue&#xff09;1.1 定义1.2 函数1.3 习题1.3.1 例题&#xff08;周末舞会&#xff09; 2. 双向队列&#xff08;deque&#xff09;2.1 定义2.2 函数2.3 题目2.3.1 例题&#xff08;打BOSS&#xff09; 1. 队列&#xff08;queue&#xff09; 队…