Zookeeper 集群搭建
- 一.Centos 虚拟机配置
- 1.新建虚拟机,选择【典型】
- 2.下一步,【稍后安装操作系统】
- 3.下一步,选择【Linux】【Centos7 64位】
- 4.下一步,设置虚拟机名称和安装目录
- 5.下一步,默认
- 6.下一步,【自定义硬件配置】选择下载的镜像
- 7.完成,启动虚拟机
- 8.登录并绑定网卡设置地址
- 二.Zookeeper 配置
- 1.Zookeeper 下载
- 2.单机配置
- 3.集群配置
一.Centos 虚拟机配置
阿里云镜像站
VmWare 安装 Centos 7
1.新建虚拟机,选择【典型】
2.下一步,【稍后安装操作系统】
3.下一步,选择【Linux】【Centos7 64位】
4.下一步,设置虚拟机名称和安装目录
5.下一步,默认
6.下一步,【自定义硬件配置】选择下载的镜像
7.完成,启动虚拟机
自动分区
开始安装
设置用户名密码
重启系统
8.登录并绑定网卡设置地址
## 修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
## 增加以下配置
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
## 删除 dhcp : BOOTPROTO=dhcp 并重启系统
二.Zookeeper 配置
1.Zookeeper 下载
Apache Zookeeper 下载
2.单机配置
## 1.解压缩 zookeeper
tar zxvf apache-zookeeper-3.8.2-bin.tar.gz
## 2.移动位置
mv apache-zookeeper-3.8.2-bin /usr/local/zookeeper
## 3.解压缩 jdk
tar zxvf jdk-11.0.19_linux-x64_bin.tar.gz
## 4.移动位置
mv jdk-11.0.19 /usr/local/java
## 5.配置环境变量
echo 'export JAVA_HOME=/usr/local/java' >> /etc/profile
echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper' >> /etc/profile
echo 'export PATH=${JAVA_HOME}/bin:${ZOOKEEPER_HOME}/bin:${PATH}' >> /etc/profile
## 6.刷新环境变量
source /etc/profile
## 7.复制配置
cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
## 8.单机启动
zkServer.sh start
## 1.停止服务
zkServer.sh stop
3.集群配置
地址分配如下:
节点 | 地址 | Host |
---|---|---|
主 | 192.168.1.100 | zk1 |
从 | 192.168.1.101 | zk2 |
从 | 192.168.1.102 | zk3 |
zoo.cfg 配置说明
配置项 | 默认值 | 含义 |
---|---|---|
tickTime | 2000 | 通信心跳 |
initLimit | 10 | Leader 和 Follower 初始化容忍最多心跳书 |
syncLimit | 5 | Leader 和 Follower 同步超时时间,超过此心跳数则剔除 Follower |
dataDir | /tmp/zookeeper | 数据目录 |
clientPort | 2181 | 客户端端口 |
server.A=B:C:D | A 服务器序号 B 本机地址 C Leader 和 Follower 通信端口 D 选举通信端口 |
## 分别设置集群内虚拟机域名(查看域名:hostname)
hostnamectl set-hostname zk1
hostnamectl set-hostname zk2
hostnamectl set-hostname zk3
## 分别设置集群内虚拟机域名解析
echo '192.168.1.100 zk1' >> /etc/hosts
echo '192.168.1.101 zk2' >> /etc/hosts
echo '192.168.1.102 zk3' >> /etc/hosts
## 创建数据目录并修改 zoo.cfe 配置的 dataDir 为新创建目录
mkdir -p $ZOOKEEPER_HOME/data
## 创建文件 myid 用于标识服务器序号
touch $ZOOKEEPER_HOME/data/myid
## 修改 zoo.cfg 配置,增加集群配置
echo 'server.1=zk1:3188:3288' >> $ZOOKEEPER_HOME/conf/zoo.cfg
echo 'server.2=zk2:3188:3288' >> $ZOOKEEPER_HOME/conf/zoo.cfg
echo 'server.3=zk3:3188:3288' >> $ZOOKEEPER_HOME/conf/zoo.cfg
## 分发当前配置和文件到 zk2 zk3
scp -r /usr/local/zookeeper root@zk2:/usr/local/
scp -r /usr/local/zookeeper root@zk3:/usr/local/
scp -r /usr/local/java root@zk2:/usr/local/
scp -r /usr/local/java root@zk3:/usr/local/
scp /etc/profile root@zk2:/etc/profile
scp /etc/profile root@zk3:/etc/profile
## 刷新 zk2 zk3 环境变量并分别设置服务 ID
source /etc/profile
echo 1 >> $ZOOKEEPER_HOME/data/myid
echo 2 >> $ZOOKEEPER_HOME/data/myid
echo 3 >> $ZOOKEEPER_HOME/data/myid
配置免密登录
## 修改 192.168.1.100 服务器
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@zk2
ssh-copy-id -i ~/.ssh/id_rsa root@zk3
## 修改 192.168.1.101 服务器
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@zk1
ssh-copy-id -i ~/.ssh/id_rsa root@zk3
## 修改 192.168.1.102 服务器
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa root@zk1
ssh-copy-id -i ~/.ssh/id_rsa root@zk2
## 分别配置本地登录
ssh-copy-id -i ~/.ssh/id_rsa root@localhost
## 1.关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
## 2.分别启动集群内 zookeeper 服务
zkServer.sh start && ssh root@zk2 "source /etc/profile && zkServer.sh start && exit" && ssh root@zk3 "source /etc/profile && zkServer.sh start && exit"
## 3.查看状态
zkServer.sh status
## 4.关闭
zkServer.sh stop && ssh root@zk2 "source /etc/profile && zkServer.sh stop && exit" && ssh root@zk3 "source /etc/profile && zkServer.sh stop && exit"
ZK1
ZK2
ZK3
停止