一,下載zookeeper:
1,官網地址
http://zookeeper.apache.org/
找到這個地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.6/
2,下載
[root@localhost liuhongdi]# cd /usr/local/source/ [root@localhost source]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.6-bin.tar.gz
說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,解壓
[root@localhost source]# tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz
[root@localhost source]# mv apache-zookeeper-3.5.6-bin /usr/local/soft/
三,安裝
1,創建數據目錄:
[root@localhost source]# mkdir /data/data [root@localhost source]# mkdir /data/data/zookeeper [root@localhost source]# chmod 777 /data/data/zookeeper/
2,修改配置文件
[root@localhost soft]# cd apache-zookeeper-3.5.6-bin/ [root@localhost apache-zookeeper-3.5.6-bin]# cd conf/ [root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# vi zoo.cfg dataDir=/data/data/zookeeper
說明:dataDir=的值:是在配置文件中,指定要使用的數據目錄
3,把二進制命令的路徑加入系統path
[root@localhost conf]# vi /etc/profile
說明:在末尾增加以下命令:
export ZK_HOME=/usr/local/soft/apache-zookeeper-3.5.6-bin export PATH=$ZK_HOME/bin:$PATH
修改完成之后,使配置起作用:
[root@localhost conf]# source /etc/profile
四,啟動和停止zookeeper
啟動
[root@localhost conf]# zkServer.sh start
停止
[root@localhost conf]# zkServer.sh stop
五,增加systemd管理zookeeper功能
1,新建service文件
[root@localhost conf]# vi /etc/systemd/system/zookeeper.service
說明:service文件的內容:
[Unit] Description=zookeeper.service After=network.target ConditionPathExists=/usr/local/soft/apache-zookeeper-3.5.6-bin/conf/zoo.cfg [Service] Type=forking User=root Group=root ExecStart=/usr/local/soft/apache-zookeeper-3.5.6-bin/bin/zkServer.sh start ExecStop=/usr/local/soft/apache-zookeeper-3.5.6-bin/bin/zkServer.sh stop [Install] WantedBy=multi-user.target
2,直接使用systemctl啟動zookeeper會因找不到java的路徑報錯,
我們需要手動修改zkEnv.sh文件:
[root@localhost conf]# vi /usr/local/soft/apache-zookeeper-3.5.6-bin/bin/zkEnv.sh
編輯的內容:
添加如下一行 JAVA_HOME=/usr/local/soft/jdk-13.0.2 到此兩行上方即可: ZOOBINDIR="${ZOOBINDIR:-/usr/bin}" ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
3,測試systemctl的管理:
啟動
[root@localhost conf]# systemctl start zookeeper
停止
[root@localhost conf]# systemctl stop zookeeper
六,如何查看當前已安裝的zookeeper的版本?
[root@localhost conf]# echo stat|nc 127.0.0.1 2181 stat is not executed because it is not in the whitelist.
說明:需要解決上面這個報錯
[root@localhost conf]# vi /usr/local/soft/apache-zookeeper-3.5.6-bin/bin/zkServer.sh
編輯的內容:
找到: else echo "JMX disabled by user request" >&2 ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain" fi 在上面這行fi下面添加: ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"
繼續測試
[root@localhost conf]# systemctl stop zookeeper [root@localhost conf]# systemctl start zookeeper [root@localhost conf]# echo stat|nc 127.0.0.1 2181 Zookeeper version: 3.5.6-c11b7e26bc554b8523dc929761dd28808913f091, built on 10/08/2019 20:18 GMT Clients: /127.0.0.1:41352[0](queued=0,recved=1,sent=0) Latency min/avg/max: 0/0/0 Received: 1 Sent: 0 Connections: 1 Outstanding: 0 Zxid: 0x0 Mode: standalone Node count: 5
七,關閉zookeeper內置的管理器
zookeeper內置有一個web管理器,默認使用8080端口,
但這個版本的管理器不能正常訪問,
我們可以避免啟動內置的管理器,也避免占用8080端口
[root@localhost conf]# vi /usr/local/soft/apache-zookeeper-3.5.6-bin/conf/zoo.cfg [root@localhost conf]# systemctl stop zookeeper [root@localhost conf]# systemctl start zookeeper
說明:在配置文件zoo.cfg中添加如下一行:
admin.enableServer=false
八,配置zookeeper的日志目錄:
1,創建日志目錄
[root@localhost conf]# mkdir /data/logs/zookeeperlogs [root@localhost conf]# chmod 777 /data/logs/zookeeperlogs
2,在zkEnv.sh中定義日志的路徑
[root@localhost conf]# vi /usr/local/soft/apache-zookeeper-3.5.6-bin/bin/zkEnv.sh
說明:定義ZOO_LOG_DIR這個變量即可
if [ "x${ZOO_LOG_DIR}" = "x" ] then #ZOO_LOG_DIR="$ZOOKEEPER_PREFIX/logs" ZOO_LOG_DIR="/data/logs/zookeeperlogs" fi
3,測試效果:
[root@localhost conf]# systemctl stop zookeeper [root@localhost conf]# systemctl start zookeeper [root@localhost conf]# ll /data/logs/zookeeperlogs/ 總用量 8 -rw-r--r-- 1 root root 7649 2月 18 21:36 zookeeper-root-server-localhost.localdomain.out
九,查看本地centos的版本:
[root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core)