在centos系统上部署zookeeper集群,需要以下步骤:
环境准备
-
安装Java运行环境: 使用以下命令安装Java 8开发工具包:
sudo yum install java-1.8.0-openjdk-devel
-
下载ZooKeeper: 从apache ZooKeeper官方网站下载适用于centos的版本(例如ZooKeeper 3.8.x)。 使用wget命令下载,并替换zookeeper-3.8.x为实际版本号:
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.x/zookeeper-3.8.x.tar.gz
-
解压ZooKeeper: 解压下载的压缩包并进入解压后的目录:
tar -zxvf zookeeper-3.8.x.tar.gz cd zookeeper-3.8.x
配置ZooKeeper
-
创建配置文件: 复制示例配置文件并重命名为zoo.cfg:
cp conf/zoo_sample.cfg conf/zoo.cfg
-
编辑配置文件 (zoo.cfg): 使用文本编辑器(例如vi或nano)编辑zoo.cfg文件,配置以下参数:
- tickTime: 基本时间单位(毫秒),建议值2000。
- dataDir: ZooKeeper数据存储目录,例如/var/lib/zookeeper。 确保该目录存在且ZooKeeper进程拥有读写权限。
- clientPort: 客户端连接端口,默认2181。
- initLimit: 初始化连接时最长可容忍的心跳时间间隔数,建议值10。
- syncLimit: Leader与Follower之间发送消息、请求和应答时间长度,建议值5。
- server.x: 为集群中的每台服务器分配唯一ID和地址。例如,三节点集群配置如下:
server.1=192.168.1.1:2888:3888 server.2=192.168.1.2:2888:3888 server.3=192.168.1.3:2888:3888
请将IP地址替换为实际的服务器IP地址。 每个服务器的myid文件(在dataDir目录下)必须包含其对应的服务器ID(1, 2, 3)。
启动ZooKeeper集群
-
创建myid文件: 在每台服务器的dataDir目录下,创建一个名为myid的文件,并将服务器ID (1, 2, 3) 写入文件。例如,在服务器1上,myid文件内容为1。
-
启动ZooKeeper服务: 在每台服务器上分别执行以下命令启动ZooKeeper服务,并用服务器ID作为参数:
./bin/zkServer.sh start
-
验证集群状态: 使用以下命令检查集群状态:
./bin/zkServer.sh status
如果集群启动成功,应该能看到所有服务器都处于运行状态。 可以使用./bin/zkCli.sh连接到ZooKeeper集群并执行命令进行测试。
设置开机自启动 (可选)
为了方便管理,建议将ZooKeeper设置为开机自启动。 这部分步骤较为复杂,建议参考ZooKeeper官方文档或使用系统提供的服务管理工具进行配置。
重要注意事项
- 时间同步: 确保所有服务器的时间同步,可以使用NTP服务。
- 防火墙: 确保防火墙允许ZooKeeper使用的端口(2181, 2888, 3888)的网络通信。
- myid文件: myid文件和zoo.cfg文件中的server.x配置必须一致且正确。
- 目录权限: 确保ZooKeeper数据目录拥有正确的权限。
通过以上步骤,您可以在CentOS上成功搭建ZooKeeper集群。 请注意替换文中占位符的IP地址和版本号为您的实际值。