在Ubuntu上部署Zookeeper是一个相对直接的过程,但遵循一些最佳实践可以确保其稳定性和可维护性。以下是在Ubuntu上部署Zookeeper的详细步骤和最佳实践:
Zookeeper是用Java编写的,所以首先需要在你的Ubuntu系统上安装Java。
sudo apt update
sudo apt install openjdk-11-jdk
java -version
从Apache Zookeeper的官方网站下载最新版本的Zookeeper,并解压到你的服务器上。
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
为每个Zookeeper节点创建一个配置文件。假设你有三个节点,分别是 node1, node2, node3。
mkdir -p /var/lib/zookeeper/node1
mkdir -p /var/log/zookeeper/node1
mkdir -p /var/lib/zookeeper/node2
mkdir -p /var/log/zookeeper/node2
mkdir -p /var/lib/zookeeper/node3
mkdir -p /var/log/zookeeper/node3
cp /opt/apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg /etc/zookeeper/conf/node1.cfg
编辑配置文件:
nano /etc/zookeeper/conf/node1.cfg
修改以下配置:
tickTime 2000
dataDir /var/lib/zookeeper/node1
clientPort 2181
initLimit 5
syncLimit 2
server.1 192.168.0.1:2888:3888
server.2 192.168.0.2:2888:3888
server.3 192.168.0.3:2888:3888
重复上述步骤,为 node2 和 node3 创建配置文件,并相应地修改配置。
在每个节点的数据目录中创建一个 myid 文件,用于标识节点ID。
echo "1" > /var/lib/zookeeper/node1/myid
echo "2" > /var/lib/zookeeper/node2/myid
echo "3" > /var/lib/zookeeper/node3/myid
在每个节点上启动Zookeeper服务。
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
在任意一个节点上检查Zookeeper集群的状态。
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
确保防火墙允许Zookeeper节点之间的通信。
sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
你可以使用Zookeeper自带的命令行工具或者第三方监控工具来监控和管理你的Zookeeper集群。
安装ZK-UI可以方便我们后期运维。
cd /data && wget https://github.com/DeemOpen/zkui/releases/download/v2.0/zkui-2.0.zip
sudo unzip zkui-2.0.zip
sudo vi /data/zkui/config.cfg
配置ZK-UI:
zkServer1 192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181
userSet {"users": [{"username":"username", "password":"password","role" : "ADMIN"}, {"username":"appconfig" , "password":"appconfig","role" : "USER" }]}
启动ZK-UI:
cd /data/zkui && sudo bash start.sh
访问 http://192.168.0.1:9090 即可。
在进行任何升级之前,建议先备份当前的Zookeeper数据和配置文件。
sudo cp -R /var/lib/zookeeper /var/lib/zookeeper-backups
sudo cp -R /etc/zookeeper /etc/zookeeper-backup
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /tmp
sudo mv /var/lib/zookeeper /var/lib/zookeeper-old
sudo mv /tmp/zookeeper-3.7.0/data /var/lib/zookeeper
sudo cp /etc/zookeeper/conf/zoo.cfg /etc/zookeeper/conf/zoo.cfg.old
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
sudo mv /etc/zookeeper/conf/zoo.cfg.old /etc/zookeeper/conf/zoo.cfg
sudo systemctl stop zookeeper
sudo systemctl start zookeeper
通过以上步骤,你就可以在Ubuntu上成功搭建一个Zookeeper集群,并遵循了最佳实践来确保其稳定性和可维护性。如果在配置过程中遇到任何问题,请参考Zookeeper的官方文档或社区支持。