javaee论坛

普通会员

225648

帖子

340

回复

354

积分

楼主
发表于 2019-11-03 13:17:11 | 查看: 1494 | 回复: 1

在路径/home/admin/opt/softwares/zookeeper-3.4.5/conf下,首先将zoo_sample.cfg重命名为zoo.cfg然后修改里面的配置信息。具体的修改的信息如下图所示:

配置参数解读:

1)tickTime=2000:通信心跳数,Zookeeper服务器心跳时间,单位毫秒2)initLimit=10:Leader和Follower初始通信时限3)syncLimit=5:Leader和Follower同步通信时限4)dataDir:数据文件目录+数据持久化路径5)clientPort=2181:客户端连接端口

Server.A=B:C:D。A是一个数字,表示这个是第几号服务器;B是这个服务器的ip地址;C是这个服务器与集群中的Leader服务器交换信息的端口;D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

[admin@admin01zookeeper-3.4.5]$mkdirzkData[admin@admin01zookeeper-3.4.5]$touchzkData/myid[admin@admin01zookeeper-3.4.5]$echo1>>zkData/myid3.分发文件[admin@admin01softwares]$scp-rzookeeper-3.4.5/admin02:/home/admin/opt/softwares/[admin@admin01softwares]$scp-rzookeeper-3.4.5/admin03:/home/admin/opt/softwares/

注意:分发之前要保证各个虚拟机之间能够进行无密钥访问(即ssh需要配置)。

4.启动集群

在每个节点路径下/home/admin/opt/softwares/zookeeper-3.4.5分别启动Zookeeper:

[admin@admin02zookeeper-3.4.5]$bin/zkServer.shstart5.操作Zookeeper

a.启动zookeeper

[admin@admin01zookeeper-3.4.5]$bin/zkServer.shstart

b.查看进程是否启动

[admin@admin01zookeeper-3.4.5]$jps2726Jps2683QuorumPeerMain

c.查看状态:

[admin@admin01zookeeper-3.4.5]$bin/zkServer.shstatus

d.启动客户端:

[admin@admin01zookeeper-3.4.5]$bin/zkCli.sh

e.退出客户端:

[zk:localhost:2181(CONNECTED)0]quit

f.停止zookeeper

[admin@admin01zookeeper-3.4.5]$bin/zkServer.shsto

p今天在部署完成Zookeeper集群之后,尝试初次启动集群,每个Zookeeper节点都报出同样的错误信息,如下错误:

[admin@admin01zookeeper-3.4.5]$bin/zkServer.shstatusJMXenabledbydefaultUsingconfig:/home/admin/opt/softwares/zookeeper-3.4.5/bin/../conf/zoo.cfgErrorcontactingservice.Itisprobablynotrunning.

通过查看配置文件发现几个端口未打开,无法进行集群,具体如下:

2888端口号是zookeeper服务之间通信的端口。3888端口是zookeeper与其他应用程序通信的端口。2181端口是zookeeper客户端请求接口。

可能是因为防火墙关闭的原因,未能给予端口权限,因此无法正常启动Zookeeper集群。故此需要在此解决端口权限问题:

解决方法:

以打开3306端口为例:

问题排查1.Java环境java-version2.排查端口占用情况netstat-apn|grep2181#默认2181端口为服务端提供端口

备注:若集群未启动则不应该有端口占用

kill-9pid#pid为占用端口的进程id号3.排除网卡问题[root@admin01zookeeper-3.4.5]#ifconfig或者是[root@admin01zookeeper-3.4.5]#ipaddr

备注:如果为物理地址则需要重新启动网卡:

[root@admin01zookeeper-3.4.5]#servicenetworkrestart#CentOS-6.x的命令[root@admin01zookeeper-3.4.5]#systemctlrestartnetwork#CentOS-7.x的命令4.排除网络问题pingip#ping其他节点主机若zoo.cfg使用域名则用域名或者是:[root@admin01~]#pingwww.baidu.comPINGwww.a.shifen.com(61.135.169.121)56(84)bytesofdata.64bytesfrom61.135.169.121:icmp_seq=1ttl=128time=15.6ms64bytesfrom61.135.169.121:icmp_seq=2ttl=128time=61.6ms

备注:无ping命令则安装yuminstalliputils-ping若有问题则host映射问题

5.排查节点配置信息

dataDir是否存在myid文件内容与service.x中x对应例如:zookeeper其对应service.x则该目录下myid内容为1

6.删除节点残留信息rm-rfversion-2/zookeeper_server.pid7.防火墙拦截端口

方法一:

直接修改/etc/sysconfig/iptables文件

[root@admin01~]#vi/etc/sysconfig/iptables

增加如下一行:-AINPUT-ptcp-mtcp--dport2888-jACCEPT

serviceiptablesrestart#重新启动防火墙

注意:在[root@admin01~]#vi/etc/sysconfig/iptables路径下添加的时候,需要在COMMIT之前加入命令,否则在重新启动防火墙的时候会报出如下的错误信息;

[root@admin03~]#serviceiptablesrestartiptables:SettingchainstopolicyACCEPT:filter[OK]iptables:Flushingfirewallrules:[OK]iptables:Unloadingmodules:[OK]iptables:Applyingfirewallrules:iptables-restore:line14failed[FAILED]方法二:[root@admin01~]#/sbin/iptables-IINPUT-ptcp--dport3306-jACCEPT#开启3306权限[root@admin01~]#/etc/rc.d/init.d/iptablessave#保存设置[root@admin01~]#/etc/init.d/iptablesstatus#查看防火墙状态[root@admin01~]#serviceiptablesrestart#重新启动防火墙

按照上面操作的方法,即可成功启动zookeeper节点,方法二就不再详细概述:

[admin@admin03zookeeper-3.4.5]$bin/zkServer.shstartJMXenabledbydefaultUsingconfig:/home/admin/opt/softwares/zookeeper-3.4.5/bin/../conf/zoo.cfgStartingzookeeper...STARTED

普通会员

0

帖子

305

回复

318

积分
沙发
发表于 2023-08-12 20:09:11

谢谢楼主分享

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017