【环境搭建】Apache ZooKeeper 3.8.4 Stable
软件环境
Ubuntu 20.04 、OpenJDK 11
OpenJDK 11(如果已经安装,可以跳过这一步)
安装OpenJDK 11:
$ sudo apt-get update$ sudo apt-get install -y openjdk-11-jdk
设置 JAVA_HOME 环境变量:
$ sudo gedit ~/.bashrc
添加内容:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64export PATH=$PATH:$JAVA_HOME/bin
环境变量生效:
$ source ~/.bashrc
验证:
$ java --version

获取 Zookeeper
进入 Zookeeper 官网Apache ZooKeeper,找到Downloads,直接下载编译好的安装包,不然下载源码还要自己手动编译比较麻烦,我们选择Apache ZooKeeper 3.8.4 Stable:

复制这个HTTP网址:

使用wget下载到本地:
$ wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz --no-check-certificate

解压:
$ tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
将解压后的文件移动到合适的目录,例如/opt/zookeeper:
$ sudo mv apache-zookeeper-3.8.4-bin /opt/zookeeper
配置 Zookeeper
在/opt/zookeeper/conf目录下,复制一份默认配置文件示例:
$ cd /opt/zookeeper/conf$ sudo cp zoo_sample.cfg zoo.cfg
打开zoo.cfg文件,找到并修改dataDir参数,指定 Zookeeper 存储数据的目录:
$ sudo gedit zoo.cfg
改为以下内容:
# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/var/lib/zookeeper/data# the port at which the clients will connectclientPort=2181# the maximum number of client connections.# increase this if you need to handle more clients#maxClientCnxns=60## Be sure to read the maintenance section of the # administrator guide before turning on autopurge.## https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance## The number of snapshots to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to "0" to disable auto purge feature#autopurge.purgeInterval=1## Metrics Providers## https://prometheus.io Metrics Exporter#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider#metricsProvider.httpHost=0.0.0.0#metricsProvider.httpPort=7000#metricsProvider.exportJvmInfo=true
此外,可以根据需要修改clientPort参数来指定 Zookeeper 服务端口,默认是2181。如果要配置 Zookeeper 集群,还需要在zoo.cfg文件中添加其他节点信息。
创建相应的目录:
$ sudo mkdir -p /var/lib/zookeeper/data
给予目录所有者读写执行权限,给所属组和其他用户读执行权限:
$ sudo chmod -R 755 /var/lib/zookeeper/data
启动 Zookeeper
将/opt/zookeeper/bin目录添加到系统的PATH环境变量中:
$ sudo gedit ~/.bashrc
添加内容如下:
export PATH=$PATH:/opt/zookeeper/bin
环境变量生效:
$ source ~/.bashrc
先切换为root shell,否则权限不够:
$ sudo su
启动 Zookeeper:
$ zkServer.sh start
出现问题:

解决:
权限不够,切换root shell即可。
出现问题:
# zkServer.sh startzkServer.sh: command not found
解决:
在root shell里按照刚才的步骤再添加一次环境变量并生效即可。

检查 Zookeeper 服务的状态,确保其正常启动:
# zkServer.sh status

相关文章:
【环境搭建】Apache ZooKeeper 3.8.4 Stable
软件环境 Ubuntu 20.04 、OpenJDK 11 OpenJDK 11(如果已经安装,可以跳过这一步) 安装OpenJDK 11: $ sudo apt-get update$ sudo apt-get install -y openjdk-11-jdk 设置 JAVA_HOME 环境变量: $ sudo gedit ~/.bash…...
算法练习——双指针
前言:大佬写博客给别人看,菜鸟写博客给自己看,我是菜鸟。 学前须知(对自己):这里的指针不一定指地址!也可能是数组下标。 1:移动零(双指针) 题目要求: 解题思路&#x…...
vue中el-table显示文本过长提示
1.el-table设置轻提示:show-overflow-tooltip“true“,改变轻提示宽度...
JS 字符串拼接并去重
1、includes 循环数组将某个字段拼接成新的字符串并去重(数组里面包含的一个对象,或者其他都OK) // 定义一个数组 let arr[.......] // 定义拼接的字符串 let a //循环数组将里面某个字段拼接在一起并去重 arr.forEach(item > {if(!a.in…...
opencv 图像预处理
图像预处理 在计算机视觉和图像处理领域,图像预处理是一个重要的步骤,它能够提高后续处理(如特征提取、目标检测等)的准确性和效率。OpenCV 提供了许多图像预处理的函数和方法,以下是一些常见的图像预处理操作&…...
SAP B1 功能模块字段介绍 - 价格清单(下)
目录 背景 五、业务伙伴的特殊价格 1. 单据逻辑功能 2. 部分字段解释 3. 操作流程 3.1 时间相关 3.2 数量相关 4. 实例 六、复制特殊价格到选择标准 1. 单据逻辑功能 2. 部分字段解释 七、全局更新特殊价格 编辑 1. 单据逻辑功能 2. 部分字段解释 八、价格更…...
传智杯 第六届-复赛-D
题目描述: 小红定义两个字符串同构,当且仅当对于i∈[1,n],b[i]−a[i]i∈[1,n],b[i]-a[i]i∈[1,n],b[i]−a[i]是定值。例如,"bacd"和"edfg"是同构的。 现在小红拿到了一个长度为n的字符串a,她想知道&a…...
Java - 数组实现大顶堆
题目描述 实现思路 要实现一个堆,我们首先要了解堆的概念。 堆是一种完全二叉树,分为大顶堆和小顶堆。 大顶堆:每个节点的值都大于或等于其子节点的值。 小顶堆:每个节点的值都小于或等于其子节点的值。 完全二叉树ÿ…...
ifuse挂载后,在python代码中访问iOS沙盒目录获取app日志
上一次使用pymobiledevice3,在python代码中访问app的沙盒目录并分析业务日志,在使用过程中发现,在获取app日志的时候速度很慢,执行时间很长,需要30-61秒,所以这次尝试使用libimobiledevic和ifuse࿰…...
Windows WSL环境下安装 pytorch +ROCM 支持AMD显卡
官方文档:Install PyTorch for ROCm — Use ROCm on Radeon GPUs 一、操作系统及驱动 windows 下安装WSL 环境( windows subsystem for Linux), 安装ubuntu 22.04环境。 安装 rocm 软件包: sudo apt update wget https://repo.radeon.com/amdgpu-insta…...
uniapp中skymap.html(8100端口)提示未登录的排查与解决方法
问题: 目前账号已经登录,uniapp的其他端口均可以访问到数据,唯独skymap.html中的8100会提示未登录。(8100是后端网关gateway端口) 分析: 在 skymap.html 中遇到未登录提示的问题,通常是由于该…...
训练模型时梯度出现NAN或者INF(禁用amp的不同level)
判断参数梯度位nan或inf的代码: for name, param in model.named_parameters():if param.grad is not None:if torch.isnan(param.grad).any() or torch.isinf(param.grad).any():print(f"grad layer [{name}] is NaN or Inf") 首先来说可能得原因&…...
Maven核心概念
一、项目对象模型(POM) 1. 定义 POM(Project Object Model)是 Maven 项目的核心配置文件,它以 XML 格式描述了项目的基本信息、项目依赖、构建配置等。可以说,POM 是 Maven 理解和处理项目的基础。 2. 基…...
Sonatype Nexus 部署手册
文章目录 一、前言二、软件环境2.1 版本变更:2.1.1 变更存储的原因2.2.2 H2作为存储的注意点 三、资源配置四、开始部署4.1 部署jdk174.2 离线部署nexus4.2.1 下载4.2.2 部署1. 上传到服务器2. 解压3. 添加用户4. 修改启动参数5. 迁移sonatype-work ,并授…...
TLV320AIC3104IRHBR 数据手册 一款低功耗立体声音频编解码器 立体声耳机放大器芯片麦克风
TLV320AIC3104 是一款低功耗立体声音频编解码器,具有立体声耳机放大器以及在单端或全差分配置下可编程的多个输入和输出。该器件包括基于寄存器的全面电源控制,可实现立体声 48kHz DAC 回放,在 3.3V 模拟电源电压下的功耗低至 14mW࿰…...
(8)结构体、共用体和枚举类型数据
1. 结构体、共用体的定义及区别,typedef 定义别名 结构体的定义 结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起。例如,定义一个表示学生信息的结构体: // 定义结构体类型 struct Student struct Student {char name[20];int age;float score; };共…...
Jedis操作和springboot整合redis
Jedis-springboot整合redis Jedis 引入jedis依赖 注意事项 测试相关数据类型 Key String List set hash zset 案例 spring boot整合redis 引入相关依赖 在application.properties中配置redis 配置 创建redis配置类 创建测试类 Jedis 引入jedis依赖 <depen…...
基于AI大模型的复杂扫描件PDF信息提取与规整
前言 场景大致是会上传一个几十页的扫描件PDF,让AI在当中找出我需要的字段,本文会隐去具体行业信息和具体的AI提示词内容,只分享技术相关内容,请见谅。 AI模型选择 针对我们行业的使用场景,我主要测试了GPT、Claude以…...
为什么https先非对称加密,然后对称加密?
HTTPS之所以先使用非对称加密,然后在对称加密,主要是基于两者在加密效率与安全性方面的特性考虑。 首先,非对称加密具有极高的安全性,因为它使用了公钥和私钥这一对密钥。公钥是公开的,任何人都可以使用它来加密数据&…...
【Coroutines】Full Understanding of Kotlinx.Corutines Framework
文章目录 What is CorutinesDifference between Corutine and ThreadFast UsageSuspend FunctionAdvanced Usage of CoroutineCoroutine EssentialsCoroutineContextCoroutineScopePredefined CoroutineScopePredefined DispatchersPredefined CoroutineStartJobCreate a Corou…...
2026上海紧固件专业展6月24-26日国家会展中心(上海)举办
2026第十六届上海紧固件专业展(Fastener Expo Shanghai 2026)将于6月24日至26日在国家会展中心(上海)举办。本届展会围绕紧固件全产业链展开,涵盖紧固件成品、冷镦成型设备、模具耗材、检测包装、表面处理以及原材料供…...
2026年免费PDF转Word在线工具横评与选型指南
核心观点摘要 行业趋势显示,在线PDF转Word工具正向免安装、跨设备、隐私安全方向发展,用户对无广告与无使用次数限制的需求显著提升。选型关键维度包括转换质量、隐私机制、操作门槛、可用性与隐性成本,其中轻量化在线平台在易用性与速度上优…...
GitHub被封杀后:开源难民在区块链的逃亡
对于全球软件开发者而言,GitHub不仅是代码仓库,更是数字时代的公共广场与精神家园。然而,近年来一系列地缘政治风波与技术壁垒,使得这片曾经自由的土地不断竖起高墙。从伊朗、俄罗斯开发者账号的全面封禁,到针对特定IP…...
AI技术原理--AI Token是什么:10分钟搞懂大模型基础单位
当你在ChatGPT里输入"你好,今天天气怎么样"的时候,你以为它真的读懂你的话吗? 并不是。 在你看不到的地方,有一个叫"分词器"的程序,正在把你的文字拆解成一个一个叫"Token"的单元。 …...
BES-XGBoost多变量时间序列预测的‘秃鹰搜索优化算法‘与交叉验证抑制过拟合问题的Mat...
基于秃鹰搜索优化算法优化XGBoost(BES-XGBoost)的多变量时间序列预测 BES-XGBoost多变量时间序列 采用交叉验证抑制过拟合问题 优化参数为迭代次数、最大深度和学习率 matlab代码,注:暂无Matlab版本要求 -- 推荐 2016B 版本及以上 注:采用 XG…...
Phi-4-mini-reasoning Chainlit插件开发:集成代码执行与结果可视化
Phi-4-mini-reasoning Chainlit插件开发:集成代码执行与结果可视化 1. 项目概述 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它特别强化了数学推理能力…...
使用 Applications Manager 实现 AWS 云监控:保障业务应用高效运行
随着企业加速将应用和服务迁移至云端,Amazon Web Services(AWS)凭借其可扩展性、可靠性及成本效益,成为主流选择。然而,云环境日益复杂,企业亟需强大的监控系统,以确保应用稳定运行。Applicatio…...
暗黑3效率革命:D3keyHelper全流程自动化实战指南
暗黑3效率革命:D3keyHelper全流程自动化实战指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3keyHelper是一款基于AutoHotkey&#…...
Java实战:指定长度随机验证码生成+用户输入验证
哈喽,各位Java新手小伙伴!今天咱们结合基础语法,实现两个实用小功能:一是生成指定长度的随机验证码(支持数字大小写字母),二是实现用户输入验证码并验证;同时,会修复你提…...
ObsPy地震学工具箱:从数据采集到科学发现的完整Python解决方案
ObsPy地震学工具箱:从数据采集到科学发现的完整Python解决方案 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy ObsPy是地震学领域的Python工具箱…...

