ZooKeeper的安裝部署html
安裝環境:java
Linux ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux數據庫
預置條件:安裝jdk,ubuntu上:sudo apt-get update / sudo apt-get install openjdk-8-jdkapache
Step1 :下載,目前穩定版本是3.5.5,鏈接地址是:http://apache.claz.org/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gzubuntu
wget http://apache.claz.org/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gzvim
Step2:解壓和配置bash
tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz服務器
mv apache-zookeeper-3.5.5-bin /usr/local/zookeeper併發
cp conf/zoo_sample.cfg conf/zoo.cfgssh
配置參數含義以下:
tickTime=2000
dataDir=/var/zookeeper/data
dataLogDir=/var/zookeeper/log
clientPort=2181
initLimit=5
syncLimit=2
maxClientCnxns=60
更多配置信息請參考: https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration
Step3:啓動ZooKeeper服務:
啓動方式以下:
cd bin
zkServer.sh start
Step4:測試ZooKeeper服務
測試方式:
./zkCli.sh
發現2181端口綁定在ipv6的地址上,致使咱們使用ipv4鏈接不了
root@ubuntu:/usr/local/zookeeper/bin# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 955/sshd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1194/0
tcp 0 0 192.168.1.4:22 192.168.1.3:34542 ESTABLISHED 1154/sshd: lizhiyon
tcp 0 0 192.168.1.4:22 192.168.1.3:34541 ESTABLISHED 1152/sshd: lizhiyon
tcp6 0 0 :::42863 :::* LISTEN 1274/java
tcp6 0 0 :::8080 :::* LISTEN 1274/java
tcp6 0 0 :::22 :::* LISTEN 955/sshd
tcp6 0 0 ::1:6010 :::* LISTEN 1194/0
tcp6 0 0 :::2181 :::* LISTEN 1274/java
解決辦法:
vim zkServer.sh;
在start)部分找到「 nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}"」,給其添加一個選項"-Djava.net.preferIPv4Stack=true",這樣啓動的時候就會自動綁定IPV4端的IP;
Step 5 : 開機自啓動
在/etc/init.d目錄下建立zookeeper文件,在文件裏輸入如下內容,固然要注意JAVA_HOME的路徑要跟你本身的環境一致:
#!/bin/bash
#Configurations injected by install_server below....
EXEC=/usr/local/zookeeper/bin/zkServer.sh
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
PATH=${JAVA_HOME}/bin:$PATH
###############
# SysV Init Information
# chkconfig: - 58 74
# description: zookeeper is the zookeeper daemon.
### BEGIN INIT INFO
# Provides: zookeeper
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop zookeeper
# Description: zookeeper daemon
### END INIT INFO
case $1 in
start) su root /usr/local/zookeeper/bin/zkServer.sh start;;
stop) su root /usr/local/zookeeper/bin/zkServer.sh stop;;
status) su root /usr/local/zookeeper/bin/zkServer.sh status;;
restart) su /usr/local/zookeeper/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
而後添加zookeeper服務:
在Ubuntu中,/etc/init.d已被/usr/lib/systemd所取代。腳本仍然能夠經過「服務」啓動和停用。但主要命令如今是'systemctl'。chkconfig命令被留下,如今你用systemctl來作這件事。
因此,而不是:
chkconfig enable zookeeper
而應該查找服務名稱,而後啓用它
systemctl status zookeeper
systemctl enable zookeeper.service
點贊收藏轉發~私信一下通通帶走