配置Linux Zookeeper集群是一个相对复杂的过程,需要确保每个节点都能正确地通信和协调。以下是一个基本的步骤指南,假设我们有三个节点:zk1
、zk2
和zk3
。
在所有节点上安装JDK 1.8。
wget https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html/jdk-8u202-linux-x64.tar.gz
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/
export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH
在所有节点上关闭防火墙。
systemctl stop firewalld
systemctl disable firewalld
在所有节点上修改主机名,并在/etc/hosts
文件中配置IP地址映射。
hostnamectl set-hostname zk1
hostnamectl set-hostname zk2
hostnamectl set-hostname zk3
echo "192.168.1.1 zk1" >> /etc/hosts
echo "192.168.1.2 zk2" >> /etc/hosts
echo "192.168.1.3 zk3" >> /etc/hosts
在所有节点上下载并解压Zookeeper安装包。
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.9.1-bin.tar.gz -C /usr/local/
mv apache-zookeeper-3.9.1-bin zookeeper-3.9.1
在每个节点上创建Zookeeper数据存储目录。
mkdir -p /var/lib/zookeeper/zk1
mkdir -p /var/lib/zookeeper/zk2
mkdir -p /var/lib/zookeeper/zk3
zoo.cfg
文件在每个节点的conf
目录下创建或编辑zoo.cfg
文件。
zk1的zoo.cfg
:
tickTime=2000
dataDir=/var/lib/zookeeper/zk1
clientPort=2181
initLimit=5
syncLimit=2
server.1=zk2:2888:3888
server.2=zk3:2888:3888
server.3=zk1:2888:3888
zk2的zoo.cfg
:
tickTime=2000
dataDir=/var/lib/zookeeper/zk2
clientPort=2182
initLimit=5
syncLimit=2
server.1=zk1:2888:3888
server.2=zk3:2888:3888
server.3=zk2:2888:3888
zk3的zoo.cfg
:
tickTime=2000
dataDir=/var/lib/zookeeper/zk3
clientPort=2183
initLimit=5
syncLimit=2
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888
myid
文件在每个节点的数据目录下创建myid
文件。
echo "1" > /var/lib/zookeeper/zk1/myid
echo "2" > /var/lib/zookeeper/zk2/myid
echo "3" > /var/lib/zookeeper/zk3/myid
在每个节点上启动Zookeeper服务。
/usr/local/zookeeper-3.9.1/bin/zkServer.sh start server.1
/usr/local/zookeeper-3.9.1/bin/zkServer.sh start server.2
/usr/local/zookeeper-3.9.1/bin/zkServer.sh start server.3
使用zkCli
工具连接到任意一个节点,检查集群状态。
/usr/local/zookeeper-3.9.1/bin/zkCli.sh -server 192.168.1.1
在zkCli
中执行以下命令查看集群状态:
ls /
stat
如果一切正常,你应该能看到类似以下的输出:
[zk: 192.168.1.1:2181(CONNECTED) 0] stat
在客户端应用程序中配置Zookeeper集群地址。
String connectString = "192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181";
通过以上步骤,你应该能够成功配置一个基本的Zookeeper集群。请根据实际需求调整配置,并确保所有节点之间的网络通信正常。