三节点zookeeper集群搭建
1、环境准备1.1、 设置三台虚拟机主机名# 在node1执行 sudo hostnamectl set-hostname node1 # 在node2执行 sudo hostnamectl set-hostname node2 # 在node3执行 sudo hostnamectl set-hostname node31.2、修改hosts# 使用vim编辑hosts文件 sudo vim /etc/hosts # 添加以下内容示例IP请替换为实际值 192.168.1.101 node1 192.168.1.102 node2 192.168.1.103 node31.3、安装java需具备可以配置多套java环境环境变量中配别名进行切换# Java export JAVA_8_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 export JAVA_11_HOME/opt/module/jdk-11.0.2 export JAVA_17_HOME/opt/module/jdk-17.0.2 export JAVA_21_HOME/opt/module/jdk-21.0.2 ## default java 8 export JAVA_HOME$JAVA_8_HOME export PATH$JAVA_HOME/bin:$PATH ## use alias alias java8export JAVA_HOME$JAVA_8_HOME; export JRE_HOME$JAVA_HOME/jre; export CLASSPATH.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH; export PATH$JAVA_HOME/bin:$JRE_HOME/bin:$PATH; echo Switched to Java 8; java -version alias java11export JAVA_HOME$JAVA_11_HOME; export PATH$JAVA_HOME/bin:$PATH; echo Switched to Java 11; java -version alias java17export JAVA_HOME$JAVA_17_HOME; export PATH$JAVA_HOME/bin:$PATH; echo Switched to Java 17; java -version alias java21export JAVA_HOME$JAVA_21_HOME; export PATH$JAVA_HOME/bin:$PATH; echo Switched to Java 21; java -version1.4、zk安装包下载wget https://downloads.apache.org/zookeeper/zookeeper-3.8.5/apache-zookeeper-3.8.5-bin-bin.tar.gz tar -zxvf apache-zookeeper-3.8.5-bin.tar.gz -C /opt/1.5、 配置环境变量此处新建my_env.sh文件专门存放自己手动安装软件的环境变量echo export ZOOKEEPER_HOME/opt/apache-zookeeper-3.8.5-bin /etc/profile.d/my_env.sh echo export PATH$PATH:$ZOOKEEPER_HOME/bin /etc/profile.d/my_env.sh source /etc/profile批量配置环境变量节点之间需ssh免登录#!/bin/bash # 定义节点列表 NODES(node1 node2 node3) # 批量配置环境变量 for node in ${NODES[]}; do echo 正在配置 $node 的ZooKeeper环境变量... ssh root$node EOF echo export ZOOKEEPER_HOME/opt/apache-zookeeper-3.8.5-bin /etc/profile.d/my_env.sh echo export PATH\$PATH:\$ZOOKEEPER_HOME/bin /etc/profile.d/my_env.sh source /etc/profile echo $node 配置完成 EOF done echo 所有节点ZooKeeper环境变量配置完成1.6、验证环境变量配置# 检查环境变量是否生效 echo $ZOOKEEPER_HOME echo $PATH # 验证ZooKeeper命令是否可用 zkServer.sh --version1.7、 创建数据目录数据目录和日志目录最好分开本地无所谓mkdir -p /opt/apache-zookeeper-3.8.5-bin/data mkdir -p /var/log/zookeeper/logs1.8、集群配置文件/opt/apache-zookeeper-3.8.5-bin/conf/zoo.cfg# 基础时间单元毫秒用于计算会话超时和心跳间隔 tickTime2000 # 允许follower初始连接并同步到leader的最大心跳周期数tickTime倍数 initLimit10 # follower与leader间运行时心跳超时阈值tickTime倍数 syncLimit5 # 内存数据库快照存储路径 dataDir/opt/apache-zookeeper-3.8.5-bin/data # 事务日志存储路径与dataDir分离可提升IO性能 dataLogDir/var/log/zookeeper/logs # 待处理请求队列的最大长度流量控制 globalOutstandingLimit1000 # 单个客户端IP的最大并发连接数 maxClientCnxns250 # 自动清理时保留的快照文件数量 autopurge.snapRetainCount10 # 自动清理任务执行间隔小时 autopurge.purgeInterval24 # 启用Prometheus指标采集器 metricsProvider.classNameorg.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider # 指标暴露的监听地址0.0.0.0表示所有网卡 metricsProvider.httpHost0.0.0.0 # 指标暴露的HTTP端口 metricsProvider.httpPort2999 # 包含JVM运行时指标 metricsProvider.exportJvmInfotrue # 集群节点配置ID1的节点# server.IDIP:Leader同步端口:选举端口;客户端端口 server.1node1:2888:3888;2181 # 集群节点配置ID2的节点 server.2node2:2888:3888;2181 # 集群节点配置ID3的节点 server.3node3:2888:3888;2181 # 启用内置AdminServer admin.enableServertrue # AdminServer监听端口 admin.serverPort3999 # 限制AdminServer仅本地访问 admin.serverAddress127.0.0.1 # 允许执行的四字命令白名单 4lw.commands.whitelistmntr,ruok,snapshot,restore # 启用操作审计日志 audit.enabletrue1.9、编写myid/opt/apache-zookeeper-3.8.5-bin/data/myid各节点分别执行# 节点1 echo 1 /opt/apache-zookeeper-3.8.5-bin/data/myid # 节点2 echo 2 /opt/apache-zookeeper-3.8.5-bin/data/myid # 节点3 echo 3 /opt/apache-zookeeper-3.8.5-bin/data/myid1.10、 启动与验证1.10.1、启动集群所有节点/opt/apache-zookeeper-3.8.5-bin/bin/zkServer.sh start1.10.2、检查状态/opt/apache-zookeeper-3.8.5-bin/bin/zkServer.sh status1.10.3、 客户端连接测试/opt/apache-zookeeper-3.8.5-bin/bin/zkCli.sh -server 192.168.1.10:2181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456363.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!