准备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日志,查看错误信息进行排查