zookeeper安裝與集羣配置
本文重點是介紹zookeeper安裝與集羣配置相關問題,對於尚未接觸過的小夥伴來說按照本文順序執完成集羣搭建應該沒有問題。
一、服務器基本配置
本案例將採用三臺虛擬機作爲zookeeper服務器,ip地址分別爲192.168.72.140,192.168.72.141,192.168.72.142,首先做的是修改對應服務器IP地址與服務器名稱。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
- 修改BOOTPROTO dhcp爲static
- 修改IP地址IPADDR=”192.168.72.140”
- DNS DNS1=”8.8.8.8”
- DNS2 =”114.114.114.114”
- NETMASK=”255.255.255.0”
- GATEWAY=”192.168.72.1”
保持退出執行service network start 重啓網絡服務使配置生效
配置服務器名稱
hostname zookeeper-master
修改服務器名映射
vim /etc/hostname
192.168.72.140 zookeeper-master
192.168.72.141 zookeeper-slave1
192.168.72.142 zookeeper-slave2
- 軟件下載
本文采用 jdk1.8+zookeeper3.3.6
jdk下載地址jdk8下載鏈接
zookeeper下載地址zookeeper下載鏈接
- 安裝jdk並配置java相關環境變量
mkdir /usr/local/java
tar -zxvf jdk-8u151-linux-i586.tar.gz -C /usr/local/java/
export JAVA_HOME=/usr/local/java/jdk1.8.0_151/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=./:$JAVA_HOME/lib
驗證jdk配置 java -version 顯示一下信息標識配置完成
好,到這裏zookeeper安裝準備工作告一段落,接下來正式進入zookeeper安裝與集羣配置環節
二、zookeeper安裝
1.解壓zookeeper壓縮包到/opt路徑
tar -zxvf zookeeper-3.3.6.tar.gz -C /opt/
進入zookeeper的conf目錄,並複製配置文件另存爲zoo.cfg
cd /opt/zookeeper-3.3.6/conf/
cp zoo_sample.cfg zoo.cfg
在/opt/zookeeper-3.3.6/ 下創建data, logs 目錄
mkdir /opt/zookeeper-3.3.6/data
mkdir /opt/zookeeper-3.3.6/logs
編輯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.
dataDir=/opt/zookeeper-3.3.6/data
logDir=/opt/zookeeper-3.3.6/logs
# the port at which the clients will connect
clientPort=2181
server.1=zookeeper-master:8881:7771
server.2=zookeeper-slave1:8881:7771
server.3=zookeeper-slave2:8881:7771
zookeeper-master即192.168.72.140
zookeeper-slave1即192.168.72.141
zookeeper-slave2即192.168.72.142
server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;D 表示的是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是僞集羣的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號(僞集羣只需要保證C:D部分不衝突)
echo "1" >> /opt/zookeeper-3.3.6/data/myid
完成這一步zookeeper集羣基本已經大功告成,細心的你一定會發現怎麼會只有一臺192.168.72.140作者就說集羣搭建完成了呢?沒錯,你答對了,不過好消息是要完成集羣搭建剩下的內容幾乎和上面的操作一樣。只需要echo “1” >> /opt/zookeeper-3.3.6/data/myid 將 “1” 改爲 對應的數字即可。爲了節省時間本文將克隆192.168.72.140爲 141作爲zookeeper-slave1 ,142爲zookeeper-salve2。
…….
經過一定時間,141,142服務器已經克隆完成,並按照上面介紹過的方式配置了靜態ip,hostname 。好了,我本想說zookeeper配置完成,可是我騙不了聰明的你。分別在141,142將myid 中1 ,改爲2,3保存退出。分別在三臺服務器上執行/opt/zookeeper-3.3.6/bin/zkServer.sh start
當看到下面信息時表明zookeeper啓動成功
[root@zookeeper-slave2 ~]# /opt/zookeeper-3.3.6/bin/zkServer.sh start
JMX enabled by default
Using config: /opt/zookeeper-3.3.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
到這裏集羣環境已經配置成功,如果想驗證是否集羣可以通過一下命令進行驗證(在不同主機上)
/opt/zookeeper-3.3.6/bin/zkCli.sh -server 192.168.72.141
切記關閉防火牆!!!命令如下
service iptables stop