1. 程式人生 > 實用技巧 >安裝Zookeeper到Linux

安裝Zookeeper到Linux

系統版本:Ubuntu 16.04.5 LTS
軟體版本:apache-zookeeper-3.5.8
硬體要求:無

1、安裝依賴

Zookeeper需要JDK的支援。
注:需要先去JDK官網下載安裝包。

root@ubuntu:~# mkdir /usr/local/jdk  # 建立程式安裝目錄
root@ubuntu:~# tar -xvzf jdk-8u211-linux-x64.tar.gz -C /usr/local/jdk/  # 解壓安裝包
root@ubuntu:~# vim /etc/profile  # 配置環境變數
# jdk
export JAVA_HOME="/usr/local/jdk/jdk1.8.0_211/"
export PATH="$JAVA_HOME/bin:$PATH"
root@ubuntu:~# source /etc/profile  # 使系統環境變數立即生效
root@ubuntu:~# java -version  # 檢視java版本以驗證jdk安裝成功
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

2、從官網下載原始碼包

官網下載地址:http://mirror.bit.edu.cn/apache/zookeeper/stable/。
注:下載地址可能會由於版本變動而失效,需要去官網獲取有效的下載連結;請下載"xxx-bin.tar.gz"的二進位制包。
root@ubuntu:~# wget http://mirror.bit.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.8-bin.tar.gz

3、解壓原始碼包

root@ubuntu:~# mkdir /usr/local/zookeeper
root@ubuntu:~# tar xzvf apache-zookeeper-3.5.8-bin.tar.gz -C /usr/local/zookeeper/

4、拷貝配置檔案

root@ubuntu:~# mkdir /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/data
root@ubuntu:~# cp -rf /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/conf/zoo_sample.cfg /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/conf/zoo.cfg
root@ubuntu:~# cat /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/conf/zoo.cfg |grep -Ev '^#|^$'
tickTime=2000
# 心跳超時時間,單位為毫秒。客戶端與服務端,服務端與服務端之間的通訊超時時間。
initLimit=10
# 叢集初始化時,follower伺服器和leader伺服器之間超時連線次數(tickTime超時多次)。
syncLimit=5 
# 叢集同步資料時,follower伺服器和leader伺服器之間超時連線次數(tickTime超時多次)。
dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.8-bin/data
# Zk持久化資料儲存目錄,不建議存放到"/tmp"下,因為在叢集構建成功後會將伺服器的唯一ID(myid)資訊持久化到該目錄下。
clientPort=2181
# 服務端監聽埠,客戶端應要連線到的服務端的監聽埠。
standaloneEnabled=true
# 以獨立的方式啟動Zk。

5、開啟四字指令功能

Zookeeper支援一些特定的四字指令與其互動,管理員可以通過使用連線"nc/telnet"並輸入四字指令獲取伺服器的狀態資訊。

root@ubuntu:~# vim /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkServer.sh
start)
# 省略...
    nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.4lw.commands.whitelist=*" \
    "-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
    -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

6、建立快捷命令

root@ubuntu:~# vim /etc/profile.d/alias_zk.sh
alias zkserver='/usr/local/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkServer.sh'
alias zkclient='/usr/local/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkCli.sh'
root@ubuntu:~# source /etc/profile

7、啟動服務

root@ubuntu:~# zkserver start # 啟動服務

Using config: /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@ubuntu:~# netstat -lnupt |grep 2181  # 檢視監聽埠以驗證服務是啟動的
tcp6       0      0 :::2181                 :::*                    LISTEN      12712/java     

8、驗證安裝成功

使用客戶端連線到服務端,以驗證Zk是安裝成功的!

root@ubuntu:~# zkclient -server 127.0.0.1:2181 ls /
Connecting to 127.0.0.1:2181
省略...
[zookeeper]