Centos搭建Zookeeper集群
1.准备3台机器
1.1修改hostname
分别设置3台机器的hostname为pigg01/pigg02/pigg03
hostnamectl --static set-hostname pigg01
hostnamectl --static set-hostname pigg02
hostnamectl --static set-hostname pigg03
1.2修改hosts
sudo vim /etc/hosts
以pigg01这机器为例子
127.0.0.1 pigg01
192.168.16.157 pigg01
192.168.16.158 pigg02
192.168.16.159 pigg03
#在pigg01上测试
ping pigg02
1.3设置ssh免密登录
在pigg01上
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
发现有生成authorized_keys这个文件
-rw-rw-r--. 1 pigg pigg 393 1月 30 16:21 authorized_keys
-rw-------. 1 pigg pigg 1675 1月 30 16:19 id_rsa
-rw-r--r--. 1 pigg pigg 393 1月 30 16:19 id_rsa.pub
在pigg02上
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub pigg@pigg01:~/.ssh/pigg02.pub
在pigg03上
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub pigg@pigg01:~/.ssh/pigg03.pub
回到pigg01上
cd ~/.ssh
ll
显示有如下文件
-rw-------. 1 pigg pigg 393 1月 30 16:21 authorized_keys
-rw-------. 1 pigg pigg 1675 1月 30 16:19 id_rsa
-rw-r--r--. 1 pigg pigg 393 1月 30 16:19 id_rsa.pub
-rw-r--r--. 1 pigg pigg 393 1月 30 16:30 pigg02.pub
-rw-r--r--. 1 pigg pigg 393 1月 30 16:31 pigg03.pub
在pigg01上将02和03的公钥也放入authorized_keys
cat pigg02.pub >> authorized_keys
cat pigg03.pub >> authorized_keys
在pigg01上将authorized_keys 传递给02和03
scp authorized_keys pigg@pigg02:~/.ssh/authorized_keys
scp authorized_keys pigg@pigg03:~/.ssh/authorized_keys
1.4验证ssh
在pigg01上
ssh pigg02
ssh pigg03
在pigg02上
ssh pigg01
ssh pigg03
在pigg03上
ssh pigg01
ssh pigg02
2.配置Zookeeper
2.1修改环境变量
#修改环境变量
vim /etc/profile
export ZOOKEEPER_HOME=/usr/lib/zookeeper
export PATH=${ZOOKEEPER_HOME}/bin:$PATH
#让环境变量生效
source /etc/profile
2.2创建data和dataLog目录
cd /usr/local
sudo mkdir mydata
cd mydata
sudo mkdir data/ dataLog/
2.3修改Zookeeper配置文件
将解压好的zookeeper拷贝到/usr/lib下,并复制zoo_sample.cfg文件为zoo.cfg
cd /usr/lib/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
将配置分发到别的机器上
scp zoo.cfg pigg@pigg02:/usr/lib/zookeeper/conf/
scp zoo.cfg pigg@pigg03:/usr/lib/zookeeper/conf/
2.4生成myid文件
3台机器分别标号1,2,3
在各台机器上的dataDir目录里分别生成一个myid文件,这个文件里就一个数字,是标号
#在pigg01上是1,在pigg02上就是2
cd /usr/local/mydata/data
echo "1" > myid
2.5启动
#先在3台机器上都启动,启动数大于机器一半以上才可以
zkServer.sh start
#查看状态
zkServer.sh status
#关闭
zkServer.sh stop
2.6启动错误排查
2.6.1 Address already in use
说明端口被占用了
#查看端口占用情况
netstat -apn | grep 2181
kill -9 XXX
2.6.2 No route to host (Host unreachable)
防火墙问题
#查看firewalld状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#开启端口
firewall-cmd --permanent --zone=public --add-port=2181/tcp
#如果还是不行就关闭防火墙吧
systemctl stop firewalld