因只供自學,故後面的操作都是用root用戶進行的
一、下載
官網下載地址: http://mirrors.hust.edu.cn/apache/zookeeper/ 選擇最新的版本進行下載
這裏選擇3.4.13進行下載:
[root@oracle /]# cd /usr/local/src
[root@oracle src]# ll
[root@oracle src]$ wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz --no-check-certificate
二、解壓
下載完成後執行以下命令進行解壓:
[root@oracle src]# tar -zxvf zookeeper-3.4.13.tar.gz
將文件夾 /usr/local/src/zookeeper-3.4.13移到 /usr/local/zookeeper中
[root@oracle src]# mv /usr/local/src/zookeeper-3.4.13 /usr/local/zookeeper
[root@oracle src]# cd /usr/local/zookeeper
[root@oracle zookeeper]# ll
三、配置Zookeeper
解壓之後,在zookeeper目錄下創建以下目錄:
[root@oracle zookeeper]# mkdir data
[root@oracle zookeeper]# mkdir logs
將zookeeper-3.4.13/conf目錄下的zoo_sample.cfg文件拷貝一份,命名爲zoo.cfg
[root@oracle zookeeper]# cd conf
[root@oracle conf]# ll
[root@oracle conf]# cp zoo_sample.cfg zoo.cfg
[root@oracle conf]# ll
然後修改zoo.cfg文件
[root@oracle conf]# vi zoo.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.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
server.1=192.168.8.129:2888:3888
其中:
2888端口號是zookeeper服務之間通信的端口。
3888是zookeeper與其他應用程序通信的端口。
然後在dataDir=/usr/local/zookeeper/data下創建myid文件(編輯myid文件,並在對應的IP的機器上輸入對應的編號。如在zookeeper上,myid 文件內容就是1。如果只在單點上進行安裝配置,那麼只有一個server.1)
[root@oracle conf]# cd /usr/local/zookeeper/data
[root@oracle data]# vi myid
四、配置環境變量
編輯 /etc/profile文件
[root@oracle data]# vi /etc/profile
使編輯生效
[root@oracle data]# source /etc/profile
五、測試Zookeeper
啓動並測試zookeeper(因自學,故直接用root用戶操作,生產上不允許直接用root用操作,要用普通用戶啓動):
[root@oracle /]# cd /usr/local/zookeeper/bin
#使用root用戶到 /usr/local/zookeeper/bin目錄中執行
./zkServer.sh start
#查看進程
jps
其中,QuorumPeerMain是zookeeper進程,啓動正常。
#查看狀態
./zkServer.sh status
#服務器輸出信息
tail -500f zookeeper.out
#停止zookeeper進程
./zkServer.sh stop
六、開機自啓動
# 切換到/etc/rc.d/init.d/目錄下
cd /etc/rc.d/init.d
# 創建zookeeper文件
touch zookeeper
#更新權限
chmod +x zookeeper
#編輯文件,在zookeeper裏面輸入如下內容
[root@oracle init.d]# vi zookeeper
加入下列內容
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
export PATH=$JAVA_HOME/bin:$PATH
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 root /usr/local/zookeeper/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
然後我們就可以用service zookeeper start/stop來啓動停止zookeeper服務了
使用命令把zookeeper添加到開機啓動裏面
chkconfig zookeeper on
chkconfig --add zookeeper
添加完成之後接這個使用chkconfig --list 來看看我們添加的zookeeper是否在裏面。
七、.設置防火牆
[root@oracle ~]# sudo vi /etc/sysconfig/iptables
添加參數
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
[root@oracle ~]# sudo systemctl restart iptables #重啓生效