网站认领,电商网站建设服务,如何建网站模板,中国网站制作企业排行榜文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1#xff09;主机名2#xff09;Hosts文件3#xff09;关闭防火墙4#xff09;JDK 安装部署 3.单机部署1#xff09;下载和解压2#xff09;配置文件3… 文章目录 CentOS7安装部署Zookeeper一、前言1.简介2.架构3.集群角色4.特点5.环境 二、正文1.部署服务器2.基础环境1主机名2Hosts文件3关闭防火墙4JDK 安装部署 3.单机部署1下载和解压2配置文件3数据目录4单机启动5测试6自启动 4.集群部署1下载和解压2配置文件3拷贝ZK4数据目录5集群启动6测试7自启动 5.图形化客户端1PrettyZoo2ZooInspector 6.ZK监控平台1修改ZK配置文件2安装 Prometheus1下载和安装2修改配置文件3启动4自启动 3安装 Grafana1添加YUM仓库2安装Grafana3启动 4配置监控面板1配置数据源2导入监控面板 三、其它1.常用命令 CentOS7安装部署Zookeeper
一、前言
1.简介
Apache ZooKeeper 是一个分布式应用程序协调服务用于维护配置信息、命名、提供分布式同步和组服务。
2.架构
客户端-服务器模型ZooKeeper 遵循客户端-服务器模型客户端可以向任何服务器节点发起请求。数据模型采用类似文件系统的树形结构来存储数据每个节点称为 ZNode。请求处理所有写请求都通过一个主服务器Leader来保证数据的一致性而读请求可以由任何服务器Follower 或 Observer处理。 3.集群角色
Leader负责处理所有更新请求保证集群数据的一致性。在任何给定时间一个 ZooKeeper 集群只有一个 Leader。Follower处理客户端的非写入请求并参与 Leader 选举和数据同步过程。Observer可选与 Follower 类似但不参与 Leader 选举和写操作的投票过程。Observer 可以提升读取性能因为它们不会增加写请求的投票负担。
4.特点
一致性保证集群中所有服务器的数据状态一致。可靠性通过复制数据到所有服务器来确保高可用性。顺序一致性所有更新都是全局有序的。
5.环境
Linux 发行版CentOS-7-x86_64-DVD-1804.isoJDK 版本Java SE Development Kit 11.0.19Zookeeper 版本3.8.3 Zookeeper 官网https://zookeeper.apache.org/ Zookeeper 3.8.3https://zookeeper.apache.org/doc/r3.8.3/index.html Zookeeper Getting Startedhttps://zookeeper.apache.org/doc/r3.8.3/zookeeperStarted.html Prometheus 官网https://prometheus.io/ Prometheus 文档https://prometheus.io/docs/introduction/overview/ Grafana 官网https://grafana.com/oss/grafana/ Grafana 文档https://grafana.com/docs/grafana/latest/?pgoss-grafplcmthero-btn-2 ZooKeeper Monitorhttps://zookeeper.apache.org/doc/r3.6.4/zookeeperMonitor.html CentOS7安装部署Java11https://blog.csdn.net/u011424614/article/details/132418561 CentOS基础操作命令https://blog.csdn.net/u011424614/article/details/94555916 二、正文
1.部署服务器
Zookeeper 默认端口
端口作用2181客户端连接端口用于客户端与 ZooKeeper 集群通信2888用于集群内部服务器之间的 Leader 选举3888用于集群内部服务器之间的复制数据同步
服务器
机器名IP节点部署zk-cluster-01192.168.249.141zk 节点zk-cluster-02192.168.249.142zk 节点zk-cluster-03192.168.249.143zk 节点zk-cluster-04192.168.249.144监控节点Prometheus Grafana
2.基础环境
1主机名
修改 4 台服务器的主机名
# 141 执行
hostnamectl set-hostname zk-cluster-01 --static
hostnamectl set-hostname zk-cluster-01 --transient# 142 执行
hostnamectl set-hostname zk-cluster-02 --static
hostnamectl set-hostname zk-cluster-02 --transient# 143 执行
hostnamectl set-hostname zk-cluster-03 --static
hostnamectl set-hostname zk-cluster-03 --transient# 144 执行
hostnamectl set-hostname zk-cluster-04 --static
hostnamectl set-hostname zk-cluster-04 --transient# 查询状态
hostnamectl status2Hosts文件
修改 4 台服务器的 hosts 文件
cat /etc/hosts EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.249.141 zk-cluster-01
192.168.249.142 zk-cluster-02
192.168.249.143 zk-cluster-03
192.168.249.144 zk-cluster-04
EOF3关闭防火墙
在 4 台服务器上执行
可禁用防火墙或配置开放的端口后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service4JDK 安装部署
在 4 台服务器上安装JDK
安装参考《CentOS7安装部署Java11》安装目录/opt/java/jdk-11.0.19
3.单机部署
在 141 服务器上执行
1下载和解压
创建安装目录并下载
mkdir /opt/zookeeper
cd /opt/zookeeper# 下载
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz --no-check-certificate
# 解压
tar -xzf apache-zookeeper-3.8.3-bin.tar.gz# 修改文件夹名称
mv /opt/zookeeper/apache-zookeeper-3.8.3-bin /opt/zookeeper/apache-zookeeper-3.8.3# 进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.32配置文件
创建 zoo.cfg 配置文件
cat /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg EOF
# ZooKeeper 基本时间单位单位毫秒
tickTime2000
# Follower 启动和连接到 Leader 的最长时间数值乘以tickTime
initLimit10
# Follower 与 Leader 同步的最长时间数值乘以tickTime
syncLimit5
# 存储快照和事务日志的路径
dataDir/data/zookeeper
# 客户端连接端口
clientPort2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount10
# 自动清理任务的执行间隔时间单位小时
autopurge.purgeInterval24
EOF3数据目录
whoami 表示当前登录用户
mkdir -p /data/zookeeper
chown -R whoami /data/zookeeper4单机启动
启动
cd /opt/zookeeper/apache-zookeeper-3.8.3
# 启动
bin/zkServer.sh start
# 停止
bin/zkServer.sh stop查看运行情况
bin/zkServer.sh status5测试
进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.3连接 zk 客户端
bin/zkCli.sh -server 192.168.249.141:2181测试数据
# 创建数据
create /test mydata
# 获取数据
get /test
# 列出全部节点
ls /
# 更新数据
set /test newdata
# 删除数据
delete /test
# 退出客户端
quit6自启动
创建 zookeeper.service
cat /etc/systemd/system/zookeeper.service EOF
[Unit]
DescriptionApache ZooKeeper Server
Requiresnetwork.target
Afternetwork.target[Service]
EnvironmentJAVA_HOME/opt/java/jdk-11.0.19
Typeforking
WorkingDirectory/opt/zookeeper/apache-zookeeper-3.8.3
ExecStart/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh start
ExecStop/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh stop
ExecReload/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh restart
Userroot[Install]
WantedBymulti-user.target
EOF启动服务并设置开机自启动
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service查询进程状态
systemctl status zookeeper.service4.集群部署
1下载和解压
在 141 服务器上执行
创建安装目录并下载
mkdir /opt/zookeeper
cd /opt/zookeeper# 下载
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz --no-check-certificate
# 解压
tar -xzf apache-zookeeper-3.8.3-bin.tar.gz# 修改文件夹名称
mv /opt/zookeeper/apache-zookeeper-3.8.3-bin /opt/zookeeper/apache-zookeeper-3.8.3# 进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.32配置文件
在 141 服务器上执行
创建 zoo.cfg 配置文件
cat /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg EOF
# ZooKeeper 基本时间单位单位毫秒
tickTime2000
# Follower 启动和连接到 Leader 的最长时间数值乘以tickTime
initLimit10
# Follower 与 Leader 同步的最长时间数值乘以tickTime
syncLimit5
# 存储快照和事务日志的路径
dataDir/data/zookeeper
# 客户端连接端口
clientPort2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount10
# 自动清理任务的执行间隔时间单位小时
autopurge.purgeInterval24# 集群配置
server.1zk-cluster-01:2888:3888
server.2zk-cluster-02:2888:3888
server.3zk-cluster-03:2888:3888
EOF3拷贝ZK
在 142、143 服务器上执行
142 和 143 服务器创建目录
mkdir /opt/zookeeper在 141 服务器上执行
拷贝 Zookeeper 到其它服务器
scp -r /opt/zookeeper/apache-zookeeper-3.8.3 root192.168.249.142:/opt/zookeeper
scp -r /opt/zookeeper/apache-zookeeper-3.8.3 root192.168.249.143:/opt/zookeeper4数据目录
在 141、142、143 服务器上执行
whoami 表示当前登录用户
mkdir -p /data/zookeeper
chown -R whoami /data/zookeeper创建 myid 文件
# 141 服务器
echo 1 /data/zookeeper/myid# 142 服务器
echo 2 /data/zookeeper/myid# 143 服务器
echo 3 /data/zookeeper/myid5集群启动
在 141、142、143 服务器上执行
启动
cd /opt/zookeeper/apache-zookeeper-3.8.3
# 启动
bin/zkServer.sh start
# 停止
bin/zkServer.sh stop查看运行情况
bin/zkServer.sh status6测试
在 141 服务器上执行
进入安装目录
cd /opt/zookeeper/apache-zookeeper-3.8.3连接 zk 客户端
bin/zkCli.sh -server 192.168.249.141:2181测试数据
# 创建数据
create /test mydata
# 获取数据
get /test
# 列出全部节点
ls /
# 更新数据
set /test newdata
# 删除数据
delete /test
# 退出客户端
quit7自启动
在 141、142、143 服务器上执行
创建 zookeeper.service
cat /etc/systemd/system/zookeeper.service EOF
[Unit]
DescriptionApache ZooKeeper Server
Requiresnetwork.target
Afternetwork.target[Service]
EnvironmentJAVA_HOME/opt/java/jdk-11.0.19
Typeforking
WorkingDirectory/opt/zookeeper/apache-zookeeper-3.8.3
ExecStart/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh start
ExecStop/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh stop
ExecReload/opt/zookeeper/apache-zookeeper-3.8.3/bin/zkServer.sh restart
Userroot[Install]
WantedBymulti-user.target
EOF启动服务并设置开机自启动
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service查询进程状态
systemctl status zookeeper.service5.图形化客户端
1PrettyZoo PrettyZoo-GitHubhttps://github.com/vran-dev/PrettyZoo PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Zookeeper 图形化管理客户端。
2ZooInspector ZooInspectorhttps://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip Apache ZooKeeper 官方提供的一个简单的 GUI 工具用于浏览和编辑存储在 ZooKeeper 中的数据。
6.ZK监控平台 Prometheus 官网https://prometheus.io/ Prometheus 文档https://prometheus.io/docs/introduction/overview/ Grafana 官网https://grafana.com/oss/grafana/ Grafana 文档https://grafana.com/docs/grafana/latest/?pgoss-grafplcmthero-btn-2 ZooKeeper Monitorhttps://zookeeper.apache.org/doc/r3.6.4/zookeeperMonitor.html Zookeeper 从 3.6.0 开始支持 Prometheus 和 Grafana 进行监控。 Prometheus 是一个开源系统监控和警报工具包。 Grafana 是一款多平台开源分析和交互式可视化网络应用程序。
1修改ZK配置文件
在 141、142、143 服务器上执行
修改 conf/zoo.cfg 配置文件
cat /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg EOF
# ZooKeeper 基本时间单位单位毫秒
tickTime2000
# Follower 启动和连接到 Leader 的最长时间数值乘以tickTime
initLimit10
# Follower 与 Leader 同步的最长时间数值乘以tickTime
syncLimit5
# 存储快照和事务日志的路径
dataDir/data/zookeeper
# 客户端连接端口
clientPort2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount10
# 自动清理任务的执行间隔时间单位小时
autopurge.purgeInterval24# 集群配置
server.1zk-cluster-01:2888:3888
server.2zk-cluster-02:2888:3888
server.3zk-cluster-03:2888:3888# 指标
metricsProvider.classNameorg.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpHost0.0.0.0
metricsProvider.httpPort7000
metricsProvider.exportJvmInfotrue
EOF重启 ZK 集群
systemctl stop zookeeper.service
systemctl daemon-reload
systemctl start zookeeper.service2安装 Prometheus
在 144 服务器上执行
1下载和安装
# 安装目录
mkdir /opt/prometheus
cd /opt/prometheus# 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.48.1/prometheus-2.48.1.linux-amd64.tar.gz --no-check-certificate# 解压
tar xvfz prometheus-*.tar.gz# 修改文件夹名称
mv /opt/prometheus/prometheus-2.48.1.linux-amd64 /opt/prometheus/prometheus-2.48.1# 进入安装目录
cd /opt/prometheus/prometheus-2.48.12修改配置文件
vim prometheus.yml内容scrape_configs: 下添加配置
- job_name: Zookeeper-QuarumPeermainstatic_configs:- targets: [zk-cluster-01:7000,zk-cluster-02:7000,zk-cluster-03:7000]3启动
./prometheus --config.fileprometheus.yml浏览器访问 http://192.168.249.144:9090/status http://192.168.249.144:9090/targets
4自启动
创建 prometheus.service
cat /etc/systemd/system/prometheus.service EOF
[Unit]
DescriptionPrometheus
Wantsnetwork-online.target
Afternetwork-online.target[Service]
Userroot
ExecStart/opt/prometheus/prometheus-2.48.1/prometheus \--config.file/opt/prometheus/prometheus-2.48.1/prometheus.yml \--storage.tsdb.path/opt/prometheus/prometheus-2.48.1/data[Install]
WantedBydefault.target
EOF启动服务并设置开机自启动
systemctl daemon-reload
systemctl start prometheus.service
systemctl enable prometheus.service查询进程状态
systemctl status prometheus.service3安装 Grafana
在 144 服务器上执行
1添加YUM仓库
tee /etc/yum.repos.d/grafana.repo EOF
[grafana]
nameGrafana
baseurlhttps://packages.grafana.com/oss/rpm
repo_gpgcheck1
enabled1
gpgcheck1
gpgkeyhttps://packages.grafana.com/gpg.key
sslverify1
sslcacert/etc/pki/tls/certs/ca-bundle.crt
EOF2安装Grafana
yum install grafana3启动
启动服务并设置开机自启动
systemctl start grafana-server
systemctl enable grafana-server.service查询进程状态
systemctl status grafana-server浏览器访问http://192.168.249.144:3000首次登录admin / admin
4配置监控面板
1配置数据源
左侧菜单 - Data Source Add Data Source 选择 Prometheus 填写 Connection最下方点击【Save test】按钮 2导入监控面板
下载监控面板的 json 文件也可以使用面板ID10465 zookeeper-by-prometheushttps://grafana.com/grafana/dashboards/10465-zookeeper-by-prometheus/ 导入面板 选择文件或者输入面板ID 点击【Import】按钮 导入完成 三、其它
1.常用命令
命令说明systemctl daemon-reload重新加载服务配置systemctl start zookeeper.service启动服务systemctl enable zookeeper.service开机自启动服务systemctl status zookeeper.service查询服务状态systemctl stop zookeeper.service停止服务systemctl restart zookeeper.service重启服务systemctl disable zookeeper.service禁用开机自启动服务