初識zookeeper以及安裝和集群部署
一、Zookeeper單體版安裝
在安裝zookeeper之前要先安裝jdk環境,具體在linux環境安裝jdk1.8請參照linux筆記。
1.在/usr/local/zoo 文件夾下執行命令 wget
http://apache.fayea.com/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz 下載zookeeper壓縮包,並執行tar -zxvf 進行解壓。
2.初次使用zookeeper需要將conf文件夾下的zoo_sample.cfg修改為zoo.cfg。
3.在zookeeper安裝目錄下建立一個文件夾data。
4.修改zoo.cfg文件中的dataDir為data的路徑,保存退出。
5.啟動zookeeper,zkServer.sh.
(遇到的問題,在bin目錄下執行zkServer.sh start提示我命令不存在???
原因是zookeeper沒有配置環境變量,可以選擇配置環境變量或者使用命令./zkServer.sh start)
(修改之后。。。。命令好使了,但是啟動失敗,連原因都沒有,查看zookeeper目錄下的logs發現報錯:Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain
) 這里注意一個大坑:
在zookeeper3.5.5版本中,官網下載有兩個文件:

要選擇第一個壓縮包下載,第二個壓縮包是源碼包,第一個壓縮包下載后按照正常步驟就可以運行起來,太坑了。
二、zookeeper操作常用命令
1.啟動服務
./zkServer.sh start
2.服務狀態
./zkServer.sh staus
3.停止服務
./zkServer.sh stop
4.重啟服務器
./zkServer.sh restar
5.連接服務器
./zkCli.sh -timeout 0 -r -server ip:port
三、zookeeper集群部署
1.修改虛擬機的IP地址為靜態IP,否則搭建zookeeper集群會因為IP地址發生變化而報錯。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
只能存在一個ifcfg-ens33 文件 例如: ifcfg-ens33 / ifcfg-ens32 /ifcfg-ens33.bck 多余的文件必須刪除
修改如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=
static
#這里修改為static,代表是靜態的IP
IPADDR=192.168.162.128
#添加自定義IP地址
NETMASK=255.255.255.0
#添加子網掩碼
GATEWAY=192.168.162.2
#添加網關
DNS1=192.168.162.2
#添加DNS1可以與網關一致
DNS2=8.8.8.8
#添加DNS2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=48f38312-9b20-431c-b873-f71c64f1f1f8
DEVICE=ens33
ONBOOT=
yes
2.配置host文件 (選配)
vim etc/host
增加如下內容:
192.168.162.128 vm01
192.168.162.129 vm02
192.168.162.130 vm03
將IP地址與別名進行綁定,這里有個問題,配置了host之后ping不同,采用IP就好使,這個根據實際情況看吧。
3.修改zoo.cfg文件
增加如下內容
server.1=vm01:2888:3888
server.2=vm02:2888:3888
server.3=vm03:2888:3888
公式:server.ID=host文件中設置的名稱,如果沒設置為IP:集群內通信的端口:選舉投票的端口
4.在data文件夾下建myid文件,里面內容與ID相同
5.關閉防火牆
systemctl status firewalld 查看防火牆狀態
systemctl stop firewalld
停止防火牆
systemctl disable firewalld 禁止使用防火牆
6.分別啟動三台虛擬機的zookeeper服務
