zookeeper配置及安装时常见报错

zookeeper配置

1、安装解压zookeeper到指定目录下

2、配置/etc/profile环境,配置完wq保存

[root@master zookeeper3.7.0]# source /etc/profile  刷新配置

3、修改配置文件(/zookeeper/conf)

需要复制 zoo_sample.cfg模板,命名为zoo.cfg

vi zoo.cfg,添加如下内容:

(master、slave1、slave2为节点名称)

配置data和logs路径

4、配置myid

在每个节点的data目录下输入如下命令

[root@master data]# echo '1' > myid

[root@slave1 data]# echo '2' > myid

[root@slave2 data]# echo '3' > myid

如果没有data目录,可以手动创建一个

或者直接启动zookeeper

[root@master zookeeper3.7.0]# zkServer.sh start(会报错,但会创建data和logs目录)

5、测试zookeeper集群

5①启动zookeeper,slave1slave2节点也需要单独启动

②查看zookeeper节点状态

到此,zook集群配置成功

以下是配置时可能出现的问题:

1、查看zookeeper时

报错1:Error contacting service. It is probably not running.

原因:可能是其他节点的zookeeper没有全部启动,连接不上

报错2:Client port found: 2181. Client address: localhost. Client SSL: false.

原因:查看myid的数字是否写错;修改为正确的即可

2、查看日志

原因:①查看/etc/hosts文件的主机映射、端口号和data/zoo.cfg的配置是否相同

②检查防火墙是否关闭

systemctl status firewalld    #查看防火墙状态

systemctl stop firewalld   #关闭防火墙

systemctl disable firewalld  #关闭防火墙自启

3、拒绝连接

出现如下错误,查看三台节点的zookeeper是否都启动了

zookeeper配置解释

tickTime:发送心跳的间隔时间,单位:毫秒

dataDir:zookeeper保存数据的目录。

clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper  会监听这个端口,接受客户端的访问请求。

initLimit: 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连  接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的  Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5 个心跳的  时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表  明这个客户端连接失败。总的时间长度就是 5*2000=10 秒

syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒

server.A=B:C:D:其 中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip  地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一  集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这  个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是  一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

会话(session):服务器与客户端之间的一个TCP连接

zookeeper理论

zookeeper主要用于分布式协调服务,管理着各节点的资源,可以解决数据发布/订阅、负载均衡、命名服务、配置管理等。当集群的配置信息发生改变时,每台节点都去修改不方便,通过zookeeper的资源协调,将修改的配置服务发送给zookeeperzookeeper再将配置信息发送给其他节点,节点可以直接应用修改的数据;

何为负载均衡?

负载均衡是指在计算机网络中,将工作负载(即请求或数据)平均分配到多个计算资源上,以确保这些资源能够更高效地利用,从而提高系统的整体性能、可靠性和可扩展性。

1、提高性能:通过均衡每个服务器的负载,确保所有服务器都可以充分利用,避免出现某些服务器负载过重、而其他服务器处于空闲状态的情况;

2、提高可靠性:当某一台服务器发生故障时,负载均衡可以将流量自动转移到其他正常工作的服务器上,从而提高系统的可用性和容错能力;

3、提高可扩展性:当系统需要升级扩展,可以简单地增加新的服务器,并通过负载均衡器将流量分配到新的服务器上,而无需对客户端进行任何改动

分布式锁:防止一个数据被多次计算,在集群中,每台服务器都进行同一个事情,它们之间就需要相互协调,编程起来特别复杂,而分布式锁就是在某个时刻只让一个服务器工作,当这个服务器工作完,释放锁,其他的服务器才运行。

zookeeper会选举leader:

zookeeper集群由一组服务器节点组成,在这些节点中,只有一个leader,其他都是follower,当客户端连接zookeeper集群并执行请求时,这些请求首先会发到leader节点。leader会将这些请求写入磁盘中作备份,最后将数据变更会同步(广播)到其他follower节点上。

思考:每台节点都需要单独启动zookeeper,如果有很多的节点,都需要一个一个单独去启动吗?

答:不需要,zookeeper集群可以通过脚本或者自动化工具要批量启动这些节点,如:Ansible、Chef、Puppet等,这样可以更加方便地对zookeeper集群进行管理和维护。

  • 24
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Zookeeper,经常会遇到一些常见的错误。其中一种报错是"Starting Zookeeper ...............FAILED TO START",这可能是由于某些原因导致Zookeeper启动失败。为了解决这个问题,可以查看错误日志信息来获取更多的细节。 另外,还有一种常见报错是在单机连接Zookeeper出现的问题。在Zookeeper 3.5.9版本中,有一个修改,将默认的端口号从2181修改为8080。因此,如果你的服务端口号与8080冲突了,就会出现报错。解决办法是修改服务的端口号,避免与Zookeeper默认端口号冲突。 除了以上两种常见报错,还可能会有其他的报错信息,具体情况需要根据错误日志来判断。我建议你查看具体的错误日志,以获取更准确的故障诊断和解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Zookeeper异常解决方案](https://blog.csdn.net/weixin_48321993/article/details/125736109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Zookeeper报错汇总](https://blog.csdn.net/qq_38196524/article/details/119833648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值