Ubuntu上安装zookeeper3.8.4以及C的原生API
日期:2025.4.8
学习内容:
前言:
真的不得不说,安装这个实在是太恶心了,网上大多数都是老版本3.4.x的了,并不是太适配,自己搜了好久才解决这些一连串的问题。
本机是Ubuntu 24.04,也算是比较新的。
这次的安装很多基本都是版本问题,慢慢的逐一解决就好了。
看了很多,搜了很多,问AI了半天,电脑配置不好中间还死机了几次,真是心累。
这里感谢:Zookeeper 最新稳定版本 3.8.4 服务安装与原生 C 静态库编译 - 技术栈
解决了我出现的一些问题。在此还会分享我中间出现的别的问题,仅供大家参考。
前置知识:
首先需要先知道,这个zookeeper是有两个版本的,一个二进制版的和一个源代码版本的,我们两个都需要,前者是用来运行用的,后者我们需要他的c的api。
还有是关于本文的路径,都统一的使用path来指代apache-zookeeper-3.8.4-bin之前的路径
二进制版本:
https://zookeeper.apache.org/releases.html 下载安装的连接在这里。
把两个都下载下来,然后先解压第一个。
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
解压之后找到conf文件夹,把里面的zoo_example.cfg复制一份,叫zoo.cfg
cd /path/apache-zookeeper-3.8.4-bin/conf
cp zoo_sample.cfg zoo.cfg
然后用vim去打开
vim zoo.cfg
这里是我的设置:我们主要是修改这个路径,总之不能在tmp里面,自己设置一个自己记得住的路径就好了
# 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.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/advise/ZOO/apache-zookeeper-3.8.4-bin/DATA
# the port at which the clients will connect
clientPort=2181
然后可以进入bin目录里进行一些简单的测试:
cd /path/apache-zookeeper-3.8.4-bin/bin
./zkServer.sh start
也可以用ps来检测一下,应该是会有一坨东西蹦出来
ps -ef | grep zookeeper
还有是可以运行一下客户端,熟悉一下语句:
./zkCli.sh
source版本
还是老规矩,先解压:
tar -zxvf apache-zookeeper-3.8.4.tar.gz
然后还是要一些前置知识:
这里要先确保自己有mvn和autoreconf
mvn --version
autoconf --version
这些命令检测有没有。
这是关于mvn的下载命令:
sudo apt-update
sudo apt install maven
还有pkg-config也需要安装:sudo apt-get install pkg-config
还有一个是cppunit,但是这个并不建议用命令行来直接下载,因为下载下来的版本可能会比较新,导致无法和zookeeper相匹配,这里我先用命令行的下载了,但是后续发现缺少文件目录,估计是因为版本比较新,那个目录被移除了,这里大家先去手动搜索安装一下cppunit的压缩包。
贴上一个自己搜到的有用的链接:
Ubuntu下安装CppUnit_ubuntu安装cppunit-CSDN博客
跟着连接里面的修改好了之后,用:
# 搜索 cppunit.m4 文件
sudo find / -name "cppunit.m4"
来搜索一下在不在,一般是能够在/usr/share/aclocal/cppunit.m4
这个路径下找到的。
然后可以开始我们的工作了:
先移动到这个目录
cd /path/apache-zookeeper-3.8.4/zookeeper-jute
mvn compile
如果报错了,显示
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile \
(pre-compile-jute) on project zookeeper-jute: Fatal error compiling: 错误: 不支持发行版本 8 -> [Help 1]
这样的话,就说明我们的jdk的版本需要订正一下:
# 安装 OpenJDK 8
sudo apt-get install openjdk-8-jdk
# 切换默认 Java 版本,下面两个命令依次输入,然后根据提示选择8版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
然后成功了之后,再移动到:
cd /path/apache-zookeeper-3.8.4/zookeeper-client/zookeeper-client-c
vim configure.ac
需要对这个文件做一些修改,适配一下新版本的情况:
# 找到文件中的以下代码:
if test "$with_cppunit" = "no" ; then
CPPUNIT_PATH="No_CPPUNIT"
CPPUNIT_INCLUDE=
CPPUNIT_LIBS=
else
CHECK_CPPUNIT(1.10.2)
fi
# 替换为:
if test "$with_cppunit" = "no" ; then
CPPUNIT_PATH="No_CPPUNIT"
CPPUNIT_INCLUDE=
CPPUNIT_LIBS=
else
PKG_CHECK_MODULES([CPPUNIT], [cppunit >= 1.10.2])
fi
然后:wq保存退出之后,再执行:
aclocal -I /usr/share/aclocal && autoreconf -if
./configure
make
sudo make install
end
这辈子再也不想安装了