zookeeper集群搭建步骤
时间:2022-06-21
本文章向大家介绍zookeeper集群搭建步骤,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- zookeeper服务器的数量是
2*n+1
台zookeeper集群搭建步骤 本人下载目录为 /opt/microServer/ 集群ip为192.168.188.111、192.168.188.112、192.168.188.1131. 下载zookeeper 执行命令下载wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz tar -zxvf zookeeper-3.4.11.tar.gz cd zookeeper-3.4.11 ## 创建 data和log文件夹 mkdir data log
2. 进入conf文件夹,配置zookeeper
cd conf
cp zoo_sample.cfg zoo.cfg
3. 编辑zoo.cf文件
## tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
tickTime=2000
## initLimit: 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
initLimit=10
## syncLimit:这个配置项标识 Leader 与Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
syncLimit=5
## dataDir:快照日志的存储路径
dataDir=/opt/microServer/zookeeper-3.4.11/data
## dataLogDir:事物日志的存储路径,如果不配置这个那么事物日志会默认存储到dataDir制定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事物日志、快照日志太多
dataLogDir=/opt/microServer/zookeeper-3.4.11/log
clientPort=2181
server.1=192.168.188.111:12888:13888
server.2=192.168.188.112:12888:13888
server.3=192.168.188.113:12888:13888
#server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
#192.168.188.111为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
4.复制zookeeper到其他机器
scp -r zookeeper-3.4.11/ root@192.168.188.112:/opt/microServer/
scp -r zookeeper-3.4.11/ root@192.168.188.113:/opt/microServer/
4. 创建myid文件
#server1
echo "1" > /opt/microServer/zookeeper-3.4.11/data/myid
#server2
echo "2" > /opt/microServer/zookeeper-3.4.11/data/myid
#server3
echo "3" > /opt/microServer/zookeeper-3.4.11/data/myid
启动服务并查看(可以在/etc/profile配置zk)
#进入到Zookeeper的bin目录下
cd /opt/zookeeper/zookeeper-3.4.6/bin
#启动服务(3台都需要操作)
./zkServer.sh start
#检查服务器状态
./zkServer.sh status
*注意事项:
如果zkServer.sh status出现以下错误:
]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/microserver/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
到 /root/zookeeper.out看报错信息。如下:
[myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@237] - Unexpected exception, tries=0, connecting to /192.168.188.113:12888
java.net.ConnectException: 拒绝连接 (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.Learner.connectToLeader(Learner.java:229)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:72)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:981)
2018-01-14 20:35:45,726 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@332] - Getting a diff from the leader 0x0
这种情况需要关闭防火墙,执行
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Oracle字符集检查和修改
- Vue3 DOM Diff 核心算法解析
- PHP的LZF压缩扩展工具
- Python函数定义及参数详解
- 代码失而复得心塞往事 - git stash命令
- 如何通过 Shell 监控异常等待事件和活跃会话
- PHP中环境变量的操作
- 一文读懂JAVA并发容器类ConcurrentHashMap
- Creator3D新版本震撼来袭
- SpringBoot源码学习(十)-Spring类级别注解解析原理
- 从安全切面到Security Mesh
- SpringBoot源码学习(十一) - bean的实例化过程
- 每天一杯力扣快乐水
- Typescript的tsconfig.json
- python和R语言计算蛋白质内部氨基酸相互作用