Ubuntu离线手动部署zookeeper集群,分别在三台服务器上,例如:
10.10.10.129
10.10.10.130
10.10.10.131
首先下载zookeeper压缩包,我用的版本是:
apache-zookeeper-3.7.2-bin.tar.gz
步骤1:配置zookeeper:
进入zookeeper的解压目录,复制一份默认的配置文件:
cd /path/to/zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg
编辑zoo.cfg
配置文件:
vi zoo.cfg
确保以下配置项设置正确:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/path/to/data
clientPort=2181
其中,/path/to/data
是zookeeper存储数据的目录。
在每台服务器上创建数据目录:
mkdir -p /path/to/data
步骤2:配置集群节点:
在每台服务器上,编辑zoo.cfg
,添加如下配置:
server.1=10.10.10.129:2888:3888
server.2=10.10.10.130:2888:3888
server.3=10.10.10.131:2888:3888
步骤3:创建myid
文件:
在每台服务器上,确保在zookeeper数据目录(例如:/path/to/data
)下创建一个myid
文件。myid
文件应该包含该节点在集群中的唯一ID:
#第1台:
echo "1" > /path/to/data/myid
#第2台:
echo "2" > /path/to/data/myid
#第3台:
echo "3" > /path/to/data/myid
步骤4:启动zookeeper:
在每台服务器上执行以下命令启动zookeeper:
#bin目录下:
./zkServer.sh start
步骤5:验证集群状态:
在任意一台服务器上执行以下命令:
bin/zkServer.sh status
你应该看到类似以下输出:
Mode: follower
这表示zookeeper节点已经成功启动并且处于follower模式。在其他服务器上也执行相同的命令,确保它们都显示正常。
PS:leader
负责处理写操作,而follower
则复制leader
的数据并处理读请求。
常用指令:
检查服务是否被占用:
netstat -tulnp | grep 2181
确认zookeeper进程是否在运行:
ps aux | grep zookeeper
检查防火墙:
sudo ufw status
关闭防火墙:
sudo ufw disable
启动防火墙:
sudo ufw enable
重启zookeeper:
#bin目录下:
./zkServer.sh restart