Centos搭建Kafka集群(2)-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-****** -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-****** -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub [email protected]:~/.ssh/pigg02.pub

在pigg03上

ssh-****** -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub [email protected]:~/.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 [email protected]:~/.ssh/authorized_keys
scp authorized_keys [email protected]:~/.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/

Centos搭建Kafka集群(2)-Centos搭建Zookeeper集群

2.3修改Zookeeper配置文件

将解压好的zookeeper拷贝到/usr/lib下,并复制zoo_sample.cfg文件为zoo.cfg

cd /usr/lib/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg

Centos搭建Kafka集群(2)-Centos搭建Zookeeper集群
将配置分发到别的机器上

scp zoo.cfg [email protected]:/usr/lib/zookeeper/conf/
scp zoo.cfg [email protected]:/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