【物联网05】CentOS7下zookeeper集群搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34614756/article/details/85318112

zookeeper集群搭建过程

我是按照这个博客的步骤来的链接,链接里的博客作者写的很好,在此记录下来我的操作步骤只是方便自己查看。在之前我已经在单机上配置好了zookeeper与kafka,现在来了解下集群的配置步骤。

1.我的三台虚拟机的IP为:

192.168.244.129
192.168.244.130
192.168.244.131

2.配置主机名到IP地址的映射

  • 这样配置的好处是如果某个IP地址发生了变化,我们不需要重启zookeeper,直接修改主机对应的IP地址即可。
  • 执行以下命令(三台虚拟机步骤相同)
vim /etc/hosts
//在末尾添加以下三句话
192.168.244.129 zoo-1
192.168.244.130 zoo-2
192.168.244.131 zoo-3

3.修改zoo.cfg配置

cd /usr/local/kafka/zookeeper-3.4.10/conf
vi zoo.cfg
//增加以下内容
server.1=zoo-1:2888:3888
server.2=zoo-2:2888:3888
server.3=zoo-3:2888:3888

4.新建myid文件并写入集群标识

在/usr/local/kafka/zookeeper-3.4.10/data/中创建myid文件,写入当前机器对应的数字值。这是zookeeper用来识别是哪一台集群机器的标识。

cd /usr/local/kafka/zookeeper-3.4.10/data/
vi myid
//输入以下内容
1		//其他两台机器分别是2和3

5.关闭防火墙

  • 如果没关闭防火墙,在启动之后,会一直报错
  • 需要在虚拟机中进行操作,在终端工具MobaXterm中systemctl命令不能执行。
systemctl stop firewalld.service	 #停止firewall
systemctl disable firewalld.service 	#禁止firewall开机启动

6.查看集群搭建是否成功

  • 配置环境变量(使得不用进入到zookeeper目录下可启动)
vi /etc/pofile
//添加以下内容
#zookeeper environment
export ZOOKEEPER_HOME=/usr/local/kafka/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
  • 分别启动三台机器上的zookeeper
zkServer.sh start		//启动zookeeper
zkServer start-foreground		//查看启动过程 
  • 执行下列命令

出现的问题

2018-12-28 15:59:50,166 [myid:] - INFO  [main-SendThread(zoo-2:2181):
ClientCnxn$SendThread@1032] - Opening socket connection to server zoo-2/192.168.244.130:2181.
Will not attempt to authenticate using SASL (unknown error)

解决办法

./zkServer start-foreground		//查看启动过程

//出现下面的问题,意思是端口被占用
2018-12-29 13:07:28,865 [myid:3] - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally
java.net.BindException: 地址已在使用
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)

//执行下面的命令
netstat -anp | grep 2181		//查看端口被占用情况

//查询结果
[root@zoo-1 ~]# netstat -anp | grep 2181
tcp6       0      0 :::2181                 :::*                    LISTEN      2096/java  

//继续执行
kill 2096		//2096是java进程的进程号

猜你喜欢

转载自blog.csdn.net/qq_34614756/article/details/85318112
今日推荐