準備3臺虛擬機(node)
192.168.152.149 node-1
192.168.152.150 node-2
192.168.152.151 node-3
注意:3臺虛擬機都要安裝好java
修改各個虛擬機主機名-每臺虛擬機都要操作
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node-1 (每個虛擬機的HOSTNAME不一樣,有node-1,node-2,node-3)
修改主機名和IP的映射關係-每臺虛擬機都要操作
vim /etc/hosts
192.168.152.149 node-1
192.168.152.150 node-2
192.168.152.151 node-3
關閉防火牆-每臺虛擬機都要操作
#關閉防火牆
systemctl stop firewalld.service
firewall-cmd --reload # 配置立即生效
配置ssh免登陸-每臺虛擬機都要操作
#生成ssh免登陸密鑰
ssh-keygen -t rsa (四個回車)
執行完這個命令後,會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝到要免密登陸的目標機器上
ssh-copy-id node-2
同步集羣時間-每臺虛擬機都要操作
yum install ntpdate
ntpdate cn.pool.ntp.org
下載安裝包、解壓-在node-1中操作
tar -zxvf zookeeper-3.4.5.tar.gz -C /export/servers/
mv zookeeper-3.4.5 zk
修改環境變量-每臺虛擬機都要操作
vi /etc/profile
export ZOOKEEPER_HOME=/export/servers/zk
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
修改Zookeeper配置文件-在node-1中操作
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
添加或修改內容:
server.1=node-1:2888:3888
server.2=node-2:2888:3888
server.3=node-3:2888:3888
dataDir=/export/servers/zk/data
dataLogDir=/export/servers/zk/logs
注意:選確保/export/servers/zk/data、/export/servers/zk/logs這兩個文件夾已經存在
創建文件夾-在node-1中操作
在/export/servers/zk/data文件夾下新建myid文件,myid的文件內容爲:
echo 1 > myid
分發安裝包到其他機器-在node-1中操作
scp -r /export/servers/zk root@node-2:/export/servers/
scp -r /export/servers/zk root@node-3:/export/servers/
修改其他機器的配置文件-在node-1、node-2中操作
修改myid文件
到node-2上:修改myid爲:2
到node-3上:修改myid爲:3
啓動(每臺機器)
zkServer.sh start
或者編寫一個腳本來批量啓動所有機器:
for host in "node-1 node-2 node-3"
do
ssh $host "source/etc/profile;/root/apps/zookeeper/bin/zkServer.sh start"
查看集羣狀態(任意node)
jps(查看進程)
zkServer.sh status(查看集羣狀態,主從信息)
如果啓動不成功,可以觀察zookeeper.out日誌,查看錯誤信息進行排查