1.准备工作:##准备3个节点,要求配置好主机名称,服务器之间系统时间保持一致##注意/etc/hostname 和/etc/hosts 配置主机名称(在这个里我准备Prac-zk-133, Prac-zk-134 , Prac-zk-135二节点)vim /etc/hosts #保证可以通过主机名互通 添加格式为IP 主机名称## 比如172.16.144.133 Prac-zk-133172.16.144.134 Prac-zk-134172.16.144.135 Prac-zk-135## 测试ping ip ping 主机名##注意关闭防火墙# 1. 启动防火墙systemctl start firewalld# 2. 关闭防火墙systemctl stop firewalld# 3. 重启防火墙systemctl restart firewalld# 4.查看防火墙状态systemctl status firewalld# 5. 开启禁用的防火墙systemctl disable firewalld##特别注意以下操作3个节点要同时进行操作哦!2.上传zk到三台服务器节点## 复制到其他机器 暂时测试不好用#scp zookeeper-3.4. 6. tar.gz 192. 168.11.222: /usr/local /software/ ## 上传到/usr/local/softwarecd /usr/local/software##注意我这里解压到/usr/local下## 2.1进行解压: tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/cd /usr/local/# 2.2重命名: mv zookeeper-3.4.6 zookeeper# 2.3修改环境变量:vim ~/.bash_profile ##这里要添加zookeeper的全局变量 jdk如果不会装,可以看之前文章export JAVA_HOME=/usr/local/jdk1.8export ZOOKEEPER_HOME=/usr/local/zookeeperexport PATH=.:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH## 2.4刷新环境变量:source ~/.bash_profile # 2.5到zookeeper 下修改配置文件:# 2.5.1首先到指定目录: cd /usr/local/zookeeper/conf# 2.5.2然后复制zoo_sample.cfg文件, 复制后为zoo.cfg:mv zoo_sample.cfg zoo.cfg# 2.5.3然后修改两处地方,最后保存退出:vim /usr/local/zookeeper/conf/zoo.cfg# (1)修改数据的dir 存储数据的地方dataDir=/usr/local/zookeeper/data# (2) 修改集群地址server.0=Prac-zk-133:2888:3888server.1=Prac-zk-134:2888:3888server.2=Prac-zk-135:2888:3888## 2.5.4 增加服务器标识配置,需要2步骤,第一是创建文件夹和文件, 第二是添加配置内容:# (1)创建文件夹: mkdir /usr/local/zookeeper/data# (2)创建文件myid路径应该创建在/usr/local/zookeeper/data 下面,如下:vim /usr/local/zookeeper/data/myid# 注意这里每台服务 器的myid文件内容不同,分别修改里面的值为0, 1, 2;与我们之前的zoo.cfg配置文件里:# server.0, server.1, server.2 顺序相对应,然后保存退出;# 2.7到此为止,Zookeeper集群环境大功告成!启动zookeeper命令启动路径: cd /usr/local/zookeeper/bin (也可在任意目录,因为配置了环境变量)执行命令: zkServer.sh start (注意这里3台机器都要进行启动,启动之后可以查看状态)./zkServer.sh start-foreground # 有日志的打印的启动查看状态: zkServer.sh status (在三个节点上检验zk的mode,会看到一个leader和俩个 follower)关闭 : zkServer.sh stop## zkCli.sh进入zookeeper客户端
Hostname | Ip | Root |
---|---|---|
Prac-zk-133 | 172.16.144.133 | root |
Prac-zk-134 | 172.16.144.134 | root |
Prac-zk-135 | 172.16.144.135 | root |
172.16.144.133 Prac-zk-133
172.16.144.134 Prac-zk-134
172.16.144.135 Prac-zk-135
zkServer.sh start-foreground 使用它启动会出现地址已在使用
Zookeeper启动失败(java.net.BindException: 地址已在使用
端口被占用了,把2181端口改成别的就可以
lsof -i:2181 #查到进程kill -s 9 2715 #然后杀掉上面的进程
如果只是使用zkServer.sh stop会停不干净,后续继续研究,方法在上
zoo.cfg配置说明
tickTime : 时间单位
initLimit follower与leader 同步数据的时间(initLimit*tickTime))
Synclimit 心跳检测最大延迟时间。
dataDir 默认情况下,zookeeper的事务日志 和 数据快照 都会保存在 dataDir 目录下.
dataLogDir log日志存储目录,默认dataDir下
clientPort 客户端与服务端建立连接的端口号,默认2181
来源地址:https://blog.csdn.net/weixin_39213232/article/details/132572107