在CentOS系统上配置Zookeeper的步骤如下:
准备工作
- 选择服务器:准备至少三台服务器,其中一台作为Leader,其余作为Follower。
- 关闭SELinux(可选但推荐):
- 临时关闭:
sudo setenforce 0
- 永久关闭:编辑
/etc/selinux/config
,将SELINUX=enforcing
改为SELINUX=disabled
,然后重启服务器。
- 临时关闭:
- 安装Java环境:
- 检查Java版本:
java -version
- 安装OpenJDK:
sudo yum install java-1.8.0-openjdk-devel
- 检查Java版本:
- 下载并解压Zookeeper:
- 从Apache Zookeeper官方网站下载适合CentOS的版本。
- 解压下载的tar.gz文件:
tar -zxvf zookeeper-x.x.x.tar.gz
- 建议解压到
/usr/local
目录下。
配置Zookeeper
-
配置环境变量:
- 编辑
/etc/profile
文件,追加以下内容:export JAVA_HOME=/usr/java/jdk1.8.0_111 export JRE_HOME=/usr/java/jdk1.8.0_111/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-3.4.9 export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 使修改生效:
source /etc/profile
- 编辑
-
配置Zookeeper:
- 进入解压后的Zookeeper目录:
cd /usr/local/zookeeper-3.4.9/conf
- 复制
zoo_sample.cfg
文件并重命名为zoo.cfg
:cp zoo_sample.cfg zoo.cfg
- 编辑
zoo.cfg
文件,设置以下参数:tickTime=2000 dataDir=/usr/local/zookeeper-3.4.9/data clientPort=2181 initLimit=5 syncLimit=2 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888
tickTime
:Zookeeper的基本时间单位(以毫秒为单位)。dataDir
:Zookeeper保存数据的目录。clientPort
:客户端连接Zookeeper服务的端口。initLimit
:初始化连接时最长能忍受的心跳时间间隔数。syncLimit
:Leader与Follower之间发送消息、请求和应答时间长度。server.x
:每个服务器的ID,格式为server.IP地址:端口:端口
。
- 进入解压后的Zookeeper目录:
-
创建数据目录:
- 在每台服务器上创建数据存储目录:
sudo mkdir /usr/local/zookeeper-3.4.9/data
- 确保Zookeeper用户具有对这些目录的读写权限。
- 在每台服务器上创建数据存储目录:
-
创建myid文件:
- 在每台服务器的
dataDir
目录下创建一个名为myid
的文件,内容为该服务器的唯一ID(例如,Master节点的ID为1,Slave节点的ID为2)。
- 在每台服务器的
启动Zookeeper
- 启动Zookeeper服务:
- 在每台服务器上启动Zookeeper服务:
./bin/zkServer.sh start
- 在每台服务器上启动Zookeeper服务:
- 验证安装:
- 启动成功后,可以使用以下命令检查Zookeeper的状态:
./bin/zkServer.sh status
- 启动成功后,可以使用以下命令检查Zookeeper的状态:
配置防火墙
- 开放Zookeeper使用的端口(默认是2181):
- 编辑防火墙配置文件:
sudo vi /etc/firewalld/rules.d/zookeeper.rules
- 添加以下内容:
port=2181 protocol=tcp allow in
- 重启防火墙:
sudo firewall-cmd --reload
- 编辑防火墙配置文件:
验证集群运行
- 使用Zookeeper客户端工具验证连接:
- 安装Zookeeper客户端工具:
sudo yum install zookeeper-client
- 连接到Zookeeper集群:
zkCli
- 列出根节点:
ls /
- 安装Zookeeper客户端工具: