openEuler 搭建 zookeeper高可用集群

13 篇文章 2 订阅
3 篇文章 0 订阅

openEuler 搭建 zookeeper高可用集群

主机名IP地址
spark01192.168.10.101
spark02192.168.10.102
spark03192.168.10.103

1. 升级内核和软件

yum -y update

2. 安装常用软件

yum -y install gcc gcc-c++ autoconf automake cmake make \
 zlib zlib-devel openssl openssl-devel pcre-devel \
 rsync openssh-server vim man zip unzip net-tools tcpdump lrzsz tar wget

3. 关闭防火墙

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

4. 修改主机名

spark01

hostnamectl set-hostname spark01

saprk02

hostnamectl set-hostname spark02

spark03

hostnamectl set-hostname spark03

5. 修改IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens32

参考如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens32
UUID=55e7ac28-39d7-4f24-b6bf-0f9fb40b7595
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.10.24
PREFIX=24
GATEWAY=192.168.10.2
DNS1=192.168.10.2

6. 修改hosts配置文件

vim /etc/hosts

修改内容如下:

192.168.10.101	spark01
192.168.10.102	spark02
192.168.10.103	spark03

7. 重启系统

reboot

8. 下载安装JDK和Zookeeper并配置环境变量

在所有主机节点创建软件目录

mkdir -p /opt/soft 

以下操作在 spark01 主机上完成

进入软件目录

cd /opt/soft

下载JDK


下载 Zookeeper

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz

解压 JDK 修改名称

解压 zookeeper 修改名称

tar -zxvf jdk-8u411-linux-x64.tar.gz
mv jdk1.8.0_411 jdk-8
tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz
mv apache-zookeeper-3.9.2-bin zookeeper-3

配置环境变量

vim /etc/profile.d/my_env.sh

编写以下内容:

export JAVA_HOME=/opt/soft/jdk-8

export ZOOKEEPER_HOME=/opt/soft/zookeeper-3

export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

在各服务器上使环境变量生效

source /etc/profile

10. 编辑配置文件

cd $ZOOKEEPER_HOME/conf
vim zoo.cfg

注释版 不推荐使用

# 心跳单位,2s
tickTime=2000
# zookeeper-3初始化的同步超时时间,10个心跳单位,也即20s
initLimit=10
# 普通同步:发送一个请求并得到响应的超时时间,5个心跳单位也即10s
syncLimit=5
# 内存快照数据的存储位置
dataDir=/home/zookeeper-3/data
# 事务日志的存储位置
dataLogDir=/home/zookeeper-3/datalog
# 当前zookeeper-3节点的端口 
clientPort=2181
# 单个客户端到集群中单个节点的并发连接数,通过ip判断是否同一个客户端,默认60
maxClientCnxns=1000
# 保留7个内存快照文件在dataDir中,默认保留3个
autopurge.snapRetainCount=7
# 清除快照的定时任务,默认1小时,如果设置为0,标识关闭清除任务
autopurge.purgeInterval=1
#允许客户端连接设置的最小超时时间,默认2个心跳单位
minSessionTimeout=4000
#允许客户端连接设置的最大超时时间,默认是20个心跳单位,也即40s,
maxSessionTimeout=300000
#zookeeper-3 3.5.5启动默认会把AdminService服务启动,这个服务默认是8080端口
admin.serverPort=9001
#集群地址配置
server.1=spark01:2888:3888
server.2=spark02:2888:3888
server.3=spark03:2888:3888

无注释版 推荐使用

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper-3/data
dataLogDir=/home/zookeeper-3/datalog 
clientPort=2181
maxClientCnxns=1000
autopurge.snapRetainCount=7
autopurge.purgeInterval=1
minSessionTimeout=4000
maxSessionTimeout=300000
admin.serverPort=9001
server.1=spark01:2888:3888
server.2=spark02:2888:3888
server.3=spark03:2888:3888

11. 保存后根据配置文件创建目录

在每台服务器上执行

mkdir -p /home/zookeeper-3/data
mkdir -p /home/zookeeper-3/datalog

12. 编写zookeeper-3开机启动脚本

在/etc/systemd/system/文件夹下创建一个启动脚本zookeeper-3.service

注意:在每台服务器上编写

cd /etc/systemd/system
vim zookeeper.service

内容如下:

[Unit]
Description=zookeeper
After=syslog.target network.target

[Service]
Type=forking
# 指定zookeeper-3 日志文件路径,也可以在zkServer.sh 中定义
Environment=ZOO_LOG_DIR=/home/zookeeper-3/datalog
# 指定JDK路径,也可以在zkServer.sh 中定义
Environment=JAVA_HOME=/opt/soft/jdk-8
ExecStart=/opt/soft/zookeeper-3/bin/zkServer.sh start
ExecStop=/opt/soft/zookeeper-3/bin/zkServer.sh stop
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target
[Unit]
Description=zookeeper
After=syslog.target network.target

[Service]
Type=forking
Environment=ZOO_LOG_DIR=/home/zookeeper-3/datalog
Environment=JAVA_HOME=/opt/soft/jdk-8
ExecStart=/opt/soft/zookeeper-3/bin/zkServer.sh start
ExecStop=/opt/soft/zookeeper-3/bin/zkServer.sh stop
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
# 等所有主机配置好后再执行以下命令
systemctl start zookeeper
systemctl enable zookeeper
systemctl status zookeeper

13. 配置ssh免密钥登录

创建本地秘钥并将公共秘钥写入认证文件

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id root@spark01
ssh-copy-id root@spark02
ssh-copy-id root@spark03
ssh root@spark01
exit
ssh root@spark02
exit
ssh root@spark03
exit

14. 分发软件和配置文件

分发 ssh 免密钥

scp -r ~/.ssh root@spark02:~/
scp -r ~/.ssh root@spark03:~/

分发 hosts 文件

scp -r /etc/hosts root@spark02:/etc/
scp -r /etc/hosts root@spark03:/etc/

分发软件

scp -r /opt/soft/jdk-8 root@spark02:/opt/soft
scp -r /opt/soft/zookeeper-3 root@spark02:/opt/soft
scp -r /opt/soft/jdk-8 root@spark03:/opt/soft
scp -r /opt/soft/zookeeper-3 root@spark03:/opt/soft

分发环境变量

scp /etc/profile.d/my_env.sh root@spark02:/etc/profile.d/
scp /etc/profile.d/my_env.sh root@spark03:/etc/profile.d/

分发开启启动脚本

scp /etc/systemd/system/zookeeper.service root@spark02:/etc/systemd/system
scp /etc/systemd/system/zookeeper.service root@spark03:/etc/systemd/system

在所有主机节点 使新的环境变量生效

source /etc/profile

15. myid

spark01

echo 1 > /home/zookeeper-3/data/myid
more /home/zookeeper-3/data/myid

spark02

echo 2 > /home/zookeeper-3/data/myid
more /home/zookeeper-3/data/myid

spark03

echo 3 > /home/zookeeper-3/data/myid
more /home/zookeeper-3/data/myid

16. 启动服务

在各节点执行以下命令

systemctl daemon-reload
systemctl start zookeeper
systemctl enable zookeeper
systemctl status zookeeper

17. 验证

jps
zkServer.sh status

18. 浏览器访问 AdminServer

浏览器访问:http://spark03:9001/commands

AdminServer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李昊哲小课

桃李不言下自成蹊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值