https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/1. 下载zookeeper离线包。
#官文链接1:
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
#官文链接2:
https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/
2. 环境:Ubuntu 20.04 focal:
root@python:~# tar xf apache-zookeeper-3.8.0-bin.tar.gz -C /data/soft
root@python:~# cd /data/soft
root@python:/data/soft# ls
apache-zookeeper-3.8.0-bin
root@python:/data/soft# ln -s ./apache-zookeeper-3.8.0-bin/ zookeeper
root@python:/data/soft# ll /data/soft/zookeeper
lrwxrwxrwx 1 root root 29 Mar 24 19:54 /data/soft/zookeeper -> ./apache-zookeeper-3.8.0-bin//
root@python:/data/soft# cd zookeeper
root@python:/data/soft/zookeeper# ls
bin conf docs lib LICENSE.txt NOTICE.txt README.md README_packaging.md
root@python:/data/soft/zookeeper#
# 查阅README.md或install之类的文档
root@python:/data/soft/zookeeper# vim README.md
...
## Java 8
If you are going to compile with Java 1.8, you should use a
recent release at u211 or above. #简而言之,安装java 1.8
...
https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/3. Oracle官方下载JDK8(要账户登录/不过可以使用openjdk-8(测试、试验足矣),这里我就是试试自己多久不用的账户,O(∩_∩)O哈哈~)
#JDK8网址: https://www.oracle.com/java/technologies/downloads/#java8
https://download.oracle.com/otn/java/jdk/8u321-b07/df5ad55fdd604472a86a45a217032c7d/jdk-8u321-linux-x64.tar.gz?AuthParam=1648123662_d8910c22921fd09103bc9fbd86f280f3
root@python:/data/soft/zookeeper# tar xf jdk-8u321-linux-x64.tar.gz -C /data/soft
root@python:/data/soft/zookeeper# cd /data/soft
root@python:/data/soft# ls
apache-zookeeper-3.8.0-bin jdk1.8.0_321 zookeeper
root@python:/data/soft# ln -s jdk1.8.0_321/ java
root@python:/data/soft# cd java/
root@python:/data/soft/java# ls
bin javafx-src.zip legal man src.zip
COPYRIGHT jmc.txt lib README.html THIRDPARTYLICENSEREADME-JAVAFX.txt
include jre LICENSE release THIRDPARTYLICENSEREADME.txt
root@python:/data/soft/java# vim /etc/profile.d/java.sh
#!/bin/bash
export JAVA_HOME="/data/soft/java"
export JRE_HOME="${JAVA_HOME}/jre"
export CLASSPATH="${JAVA_HOME}/lib"
export PATH="$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin"
root@python:/data/soft/java# source /etc/profile.d/java.sh
root@python:/data/soft/java# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/data/soft/java/bin:/data/soft/java/jre/bin
root@python:/data/soft/java# java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
4. 接上2开始
root@python:/data/soft/zookeeper# ls
bin docs lib NOTICE.txt README_packaging.md
conf jdk-8u321-linux-x64.tar.gz LICENSE.txt README.md
root@python:/data/soft/zookeeper# echo "export PATH=$PATH:/data/soft/zookeeper/bin" > /etc/profile.d/zk.sh
root@python:/data/soft/zookeeper# source /etc/profile.d/zk.sh
root@python:/data/soft/zookeeper# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/data/soft/java/bin:/data/soft/java/jre/bin:/data/soft/zookeeper/bin
# bin内有支持 window、linux的sh脚本程序,通过查案编译包可以确定,真正启动的程序的都在这里存放!
root@python:/data/soft/zookeeper# ls bin
README.txt zkEnv.cmd zkServer.sh zkSnapShotToolkit.sh
zkCleanup.sh zkEnv.sh zkSnapshotComparer.cmd zkTxnLogToolkit.cmd
zkCli.cmd zkServer.cmd zkSnapshotComparer.sh zkTxnLogToolkit.sh
zkCli.sh zkServer-initialize.sh zkSnapShotToolkit.cmd
root@python:/data/soft/zookeeper# ls
bin docs lib NOTICE.txt README_packaging.md
conf jdk-8u321-linux-x64.tar.gz LICENSE.txt README.md
root@python:/data/soft/zookeeper# ls docs/
apidocs zookeeperAuditLogs.html zookeeperOver.html
images zookeeperCLI.html zookeeperProgrammers.html
index.html zookeeperHierarchicalQuorums.html zookeeperQuotas.html
javaExample.html zookeeperInternals.html zookeeperReconfig.html
recipes.html zookeeperJMX.html zookeeperStarted.html
releasenotes.html zookeeperMonitor.html zookeeperTools.html
skin zookeeperObservers.html zookeeperTutorial.html
zookeeperAdmin.html zookeeperOracleQuorums.html zookeeperUseCases.html
root@python:/data/soft/zookeeper# ls conf/
configuration.xsl logback.xml zoo_sample.cfg
root@python:/data/soft/zookeeper# vim conf/zoo_sample.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=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# 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=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181 #zookeeper端口
# 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
root@python:/data/soft/zookeeper# cp conf/zoo_sample.cfg conf/zoo.cfg
root@python:/data/soft/zookeeper# bin/zkServer.sh --help
ZooKeeper JMX enabled by default
Using config: /data/soft/zookeeper/bin/../conf/zoo.cfg
Usage: bin/zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd}
root@python:/data/soft/zookeeper# bin/zkServer.sh start conf/zoo.cfg
ZooKeeper JMX enabled by default
Using config: conf/zoo.cfg
Starting zookeeper ... STARTED
root@python:/data/soft/zookeeper# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:6010 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::1]:6010 [::]:*
LISTEN 0 50 *:2181 *:*
LISTEN 0 50 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 50 *:39447 *:*
5. 设成开机启动服务
root@python:~# cat /lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper Daemon
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target
[Service]
Type=forking
WorkingDirectory=/data/soft/zookeeper
Environment=JAVA_HOME=/data/soft/java
ExecStart=/data/soft/zookeeper/bin/zkServer.sh start /data/soft/z
ExecStop=/data/soft/zookeeper/bin/zkServer.sh stop /data/soft/zoo
ExecReload=/data/soft/zookeeper/bin/zkServer.sh restart /data/sof
TimeoutSec=30
Restart=on-failure
[Install]
WantedBy=default.target
root@python:~# systemctl enable --now zookeeper.service
root@python:~# systemctl status zookeeper.service
● zookeeper.service - Zookeeper Daemon
Loaded: loaded (/lib/systemd/system/zookeeper.service; enabled; vendor pre>
Active: active (running) since Fri 2022-03-25 20:33:39 CST; 4min 10s ago
Docs: http://zookeeper.apache.org
Main PID: 872 (java)
Tasks: 30 (limit: 2237)
Memory: 99.5M
CGroup: /system.slice/zookeeper.service
└─872 /data/soft/java/bin/java -Dzookeeper.log.dir=/data/soft/zook>
Mar 25 20:33:38 python systemd[1]: Starting Zookeeper Daemon...
Mar 25 20:33:38 python zkServer.sh[823]: ZooKeeper JMX enabled by default
Mar 25 20:33:38 python zkServer.sh[823]: Using config: /data/soft/zookeeper/con>
Mar 25 20:33:39 python zkServer.sh[823]: Starting zookeeper ... STARTED
Mar 25 20:33:39 python systemd[1]: Started Zookeeper Daemon.
lines 1-15/15 (END)