准备阶段:
ZooKeeper配置:
-
环境变量:
- 编辑 /etc/profile 文件,添加以下环境变量 (根据实际路径调整):
export JAVA_HOME=/usr/java/jdk1.8.0_xxx # 替换xxx为你的jdk版本号 export JRE_HOME=$JAVA_HOME/jre export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export ZOOKEEPER_HOME=/usr/local/zookeeper-x.x.x # 替换x.x.x为你的ZooKeeper版本号 export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 使修改生效: source /etc/profile
- 编辑 /etc/profile 文件,添加以下环境变量 (根据实际路径调整):
-
ZooKeeper配置文件:
- 进入ZooKeeper配置文件目录: cd $ZOOKEEPER_HOME/conf
- 复制并重命名配置文件: cp zoo_sample.cfg zoo.cfg
- 编辑 zoo.cfg 文件,配置以下参数 (替换为你的服务器IP和ID):
tickTime=2000 dataDir=/usr/local/zookeeper-x.x.x/data # 替换x.x.x为你的ZooKeeper版本号 clientPort=2181 initLimit=5 syncLimit=2 server.1=master_ip:2888:3888 server.2=slave1_ip:2888:3888 server.3=slave2_ip:2888:3888
其中 master_ip, slave1_ip, slave2_ip 分别替换为你的主节点和从节点的IP地址。 server.1, server.2, server.3 分别对应服务器ID 1, 2, 3。
-
数据目录:
- 在每台服务器上创建数据目录: sudo mkdir -p $ZOOKEEPER_HOME/data
- 确保ZooKeeper用户对该目录具有读写权限。
-
myid文件:
- 在每台服务器的 dataDir 目录下创建 myid 文件,文件内容为该服务器的ID (1, 2, 3)。
启动ZooKeeper:
-
启动服务: 在每台服务器上执行: $ZOOKEEPER_HOME/bin/zkServer.sh start
-
验证状态: 使用 $ZOOKEEPER_HOME/bin/zkServer.sh status 检查ZooKeeper服务状态。
- 开放端口: 开放ZooKeeper客户端端口 (默认2181) 和服务器间通信端口 (2888, 3888)。 方法取决于你使用的防火墙 (firewalld 或iptables)。 例如,使用firewalld:
- sudo firewall-cmd –permanent –add-port=2181/tcp
- sudo firewall-cmd –permanent –add-port=2888/tcp
- sudo firewall-cmd –permanent –add-port=3888/tcp
- sudo firewall-cmd –reload
集群验证:
-
安装客户端: 在任意一台服务器上安装ZooKeeper客户端: sudo yum install zookeeper-client
-
连接并测试: 使用客户端连接集群: zkCli -server master_ip:2181 (替换 master_ip 为任意一个节点的IP),然后执行 ls / 命令查看根节点内容。
记住替换文中所有占位符 (例如 x.x.x, master_ip, slave1_ip, slave2_ip) 为你的实际值。 确保所有服务器上的配置一致。