CentOS7安装部署Zookeeper

这篇具有很好参考价值的文章主要介绍了CentOS7安装部署Zookeeper。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CentOS7安装部署Zookeeper

一、前言

1.简介

Apache ZooKeeper 是一个分布式应用程序协调服务;用于维护配置信息、命名、提供分布式同步和组服务。

2.架构

  1. 客户端-服务器模型:ZooKeeper 遵循客户端-服务器模型,客户端可以向任何服务器节点发起请求。
  2. 数据模型:采用类似文件系统的树形结构来存储数据,每个节点称为 ZNode。
  3. 请求处理:所有写请求都通过一个主服务器(Leader)来保证数据的一致性,而读请求可以由任何服务器(Follower 或 Observer)处理。

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

3.集群角色

  1. Leader:负责处理所有更新请求,保证集群数据的一致性。在任何给定时间,一个 ZooKeeper 集群只有一个 Leader。
  2. Follower:处理客户端的非写入请求,并参与 Leader 选举和数据同步过程。
  3. Observer(可选):与 Follower 类似,但不参与 Leader 选举和写操作的投票过程。Observer 可以提升读取性能,因为它们不会增加写请求的投票负担。

4.特点

  • 一致性:保证集群中所有服务器的数据状态一致。
  • 可靠性:通过复制数据到所有服务器来确保高可用性。
  • 顺序一致性:所有更新都是全局有序的。

5.环境

  • Linux 发行版:CentOS-7-x86_64-DVD-1804.iso
  • JDK 版本:Java SE Development Kit 11.0.19
  • Zookeeper 版本:3.8.3

Zookeeper 官网:https://zookeeper.apache.org/

Zookeeper 3.8.3:https://zookeeper.apache.org/doc/r3.8.3/index.html

Zookeeper Getting Started:https://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/?pg=oss-graf&plcmt=hero-btn-2

ZooKeeper Monitor:https://zookeeper.apache.org/doc/r3.6.4/zookeeperMonitor.html

CentOS7安装部署Java11:https://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-01 192.168.249.141 zk 节点
zk-cluster-02 192.168.249.142 zk 节点
zk-cluster-03 192.168.249.143 zk 节点
zk-cluster-04 192.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 status

2)Hosts文件

  • 修改 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
EOF

3)关闭防火墙

在 4 台服务器上执行

  • 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service

4)JDK 安装部署

在 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.3

2)配置文件

  • 创建 zoo.cfg 配置文件
cat > /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg <<EOF
# ZooKeeper 基本时间单位,单位毫秒
tickTime=2000
# Follower 启动和连接到 Leader 的最长时间(数值乘以tickTime)
initLimit=10
# Follower 与 Leader 同步的最长时间(数值乘以tickTime)
syncLimit=5
# 存储快照和事务日志的路径
dataDir=/data/zookeeper
# 客户端连接端口
clientPort=2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns=1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount=10
# 自动清理任务的执行间隔时间,单位小时
autopurge.purgeInterval=24
EOF

3)数据目录

  • whoami 表示当前登录用户
mkdir -p /data/zookeeper
chown -R `whoami` /data/zookeeper

4)单机启动

  • 启动
cd /opt/zookeeper/apache-zookeeper-3.8.3
# 启动
bin/zkServer.sh start
# 停止
bin/zkServer.sh stop
  • 查看运行情况
bin/zkServer.sh status

5)测试

  • 进入安装目录
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
# 退出客户端
quit

6)自启动

  • 创建 zookeeper.service
cat > /etc/systemd/system/zookeeper.service <<EOF
[Unit]
Description=Apache ZooKeeper Server
Requires=network.target
After=network.target

[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=forking
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
User=root

[Install]
WantedBy=multi-user.target
EOF
  • 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service
  • 查询进程状态
systemctl status zookeeper.service

4.集群部署

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.3

2)配置文件

在 141 服务器上执行

  • 创建 zoo.cfg 配置文件
cat > /opt/zookeeper/apache-zookeeper-3.8.3/conf/zoo.cfg <<EOF
# ZooKeeper 基本时间单位,单位毫秒
tickTime=2000
# Follower 启动和连接到 Leader 的最长时间(数值乘以tickTime)
initLimit=10
# Follower 与 Leader 同步的最长时间(数值乘以tickTime)
syncLimit=5
# 存储快照和事务日志的路径
dataDir=/data/zookeeper
# 客户端连接端口
clientPort=2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns=1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount=10
# 自动清理任务的执行间隔时间,单位小时
autopurge.purgeInterval=24

# 集群配置
server.1=zk-cluster-01:2888:3888
server.2=zk-cluster-02:2888:3888
server.3=zk-cluster-03:2888:3888
EOF

3)拷贝ZK

在 142、143 服务器上执行

  • 142 和 143 服务器创建目录
mkdir /opt/zookeeper

在 141 服务器上执行

  • 拷贝 Zookeeper 到其它服务器
scp -r /opt/zookeeper/apache-zookeeper-3.8.3 root@192.168.249.142:/opt/zookeeper
scp -r /opt/zookeeper/apache-zookeeper-3.8.3 root@192.168.249.143:/opt/zookeeper

4)数据目录

在 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/myid

5)集群启动

在 141、142、143 服务器上执行

  • 启动
cd /opt/zookeeper/apache-zookeeper-3.8.3
# 启动
bin/zkServer.sh start
# 停止
bin/zkServer.sh stop
  • 查看运行情况
bin/zkServer.sh status

6)测试

在 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
# 退出客户端
quit

7)自启动

在 141、142、143 服务器上执行

  • 创建 zookeeper.service
cat > /etc/systemd/system/zookeeper.service <<EOF
[Unit]
Description=Apache ZooKeeper Server
Requires=network.target
After=network.target

[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=forking
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
User=root

[Install]
WantedBy=multi-user.target
EOF
  • 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start zookeeper.service
systemctl enable zookeeper.service
  • 查询进程状态
systemctl status zookeeper.service

5.图形化客户端

1)PrettyZoo

PrettyZoo-GitHub:https://github.com/vran-dev/PrettyZoo

PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Zookeeper 图形化管理客户端。

2)ZooInspector

ZooInspector:https://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/?pg=oss-graf&plcmt=hero-btn-2

ZooKeeper Monitor:https://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 基本时间单位,单位毫秒
tickTime=2000
# Follower 启动和连接到 Leader 的最长时间(数值乘以tickTime)
initLimit=10
# Follower 与 Leader 同步的最长时间(数值乘以tickTime)
syncLimit=5
# 存储快照和事务日志的路径
dataDir=/data/zookeeper
# 客户端连接端口
clientPort=2181
# 单个客户端与单个服务器之间的最大并发连接数
maxClientCnxns=1200
# 自动清理时保留的快照数量
autopurge.snapRetainCount=10
# 自动清理任务的执行间隔时间,单位小时
autopurge.purgeInterval=24

# 集群配置
server.1=zk-cluster-01:2888:3888
server.2=zk-cluster-02:2888:3888
server.3=zk-cluster-03:2888:3888

# 指标
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpHost=0.0.0.0
metricsProvider.httpPort=7000
metricsProvider.exportJvmInfo=true
EOF
  • 重启 ZK 集群
systemctl stop zookeeper.service
systemctl daemon-reload
systemctl start zookeeper.service

2)安装 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.1
(2)修改配置文件
vim prometheus.yml
  • 内容(scrape_configs: 下添加配置)
- job_name: "Zookeeper-QuarumPeermain"
    static_configs:
      - targets: ['zk-cluster-01:7000','zk-cluster-02:7000','zk-cluster-03:7000']
(3)启动
./prometheus --config.file=prometheus.yml
  • 浏览器访问:
  1. http://192.168.249.144:9090/status

  2. http://192.168.249.144:9090/targets

(4)自启动
  • 创建 prometheus.service
cat > /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=root
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]
WantedBy=default.target
EOF
  • 启动服务,并设置开机自启动
systemctl daemon-reload
systemctl start prometheus.service
systemctl enable prometheus.service
  • 查询进程状态
systemctl status prometheus.service

3)安装 Grafana

在 144 服务器上执行

(1)添加YUM仓库
tee /etc/yum.repos.d/grafana.repo <<EOF
[grafana]
name=Grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
(2)安装Grafana
yum install grafana
(3)启动
  • 启动服务,并设置开机自启动
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

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • Add Data Source

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • 选择 Prometheus

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • 填写 Connection
  • 最下方点击【Save & test】按钮

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

(2)导入监控面板
  • 下载监控面板的 json 文件(也可以使用面板ID:10465)

zookeeper-by-prometheus:https://grafana.com/grafana/dashboards/10465-zookeeper-by-prometheus/

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • 导入面板

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • 选择文件,或者输入面板ID

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • 点击【Import】按钮

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式

  • 导入完成

CentOS7安装部署Zookeeper,# CentOS,# Middleware,zookeeper,分布式文章来源地址https://www.toymoban.com/news/detail-767698.html

三、其它

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 禁用开机自启动服务

到了这里,关于CentOS7安装部署Zookeeper的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos7-docker安装与配置kafka+zookeeper+kafkamanager

    一、 默认 docker 环境已经 OK 拉镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka docker pull sheepkiller/kafka-manager 删镜像 docker rmi + 镜像 id 查看镜像 [root@build-science-system-services-03 ~]# docker images 二、运行相关容器 启动 zookeeper : docker run -d --name zookeeper -p 2191:2181 --restart=always

    2024年02月09日
    浏览(36)
  • 谨慎Apache-Zookeeper-3.5.5以后在CentOS7.X安装的坑

    目录 前言 一、现场还原  二、问题诊断 三、问题原因  总结         最近由于项目需要,在服务器上需要搭建Hbase完全分布式集群环境。开发环境,采用的是最小节点的方式进行搭建(即3个节点的模式)。资源环境列表如下: 序号 依赖组件 说明 1 jdk-8u201-linux-x64.tar.g

    2024年02月05日
    浏览(30)
  • centos7 安装部署kafka

    官网地址: https://kafka.apache.org/downloads kafka 在 2.8 版本开始脱离 zookeeper,本文示例版本为 2.7.2。 选择图中标记的版本下载。 kafka-2.7.2.src.tgz 是源码格式,需要编译。 kafka_2.12-2.7.2.tgz、kafka_2.13-2.7.2.tgz 是二进制格式,其中 2.12 和 2.13 代表 scala 的版本。 将下载的文件放到linux的

    2024年02月03日
    浏览(46)
  • 腾讯云centos7.6安装部署

    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server 1.1.1 安装后重启 service mysqld restart 1.1.2 初次安装mysql,root账户没有密码,登录Mysql: mysql -u root  1.1.3 设置密码 mysql set password for \\\'root\\\'@\\\'localhost\\\' =password(\\\'12345

    2024年02月10日
    浏览(27)
  • CentOS7安装和部署Jenkins

    检查旧版: 若已经安装了旧版本,则需要先删除,删除方法: 安装新版: 版本:openjdk version “11.0.18” 2023-01-17 LTS 方法一: 使用wget前可能需要安装wget工具: 下载jenkins的rpm包: 安装: 方法二: 创建repo文件: 导入公钥(这个公钥是为了防止软件被黑客篡改,如果没有公钥

    2024年02月05日
    浏览(28)
  • CentOS7安装部署Redis7

    Linux 发行版: CentOS-7-x86_64-DVD-1804.iso Redis 版本: 7.0.12 Redis Download:https://redis.io/download/ Redis Tag:https://github.com/redis/redis/tags Redis入门和使用实践v2018:https://blog.csdn.net/u011424614/article/details/100170313 [Windows] Redis使用记录:https://blog.csdn.net/u011424614/article/details/101531772 CentOS基础操作

    2024年02月12日
    浏览(23)
  • 在CentOS7安装部署GitLab服务

    官方安装教程:https://about.gitlab.com/install/ 参考安装教程:https://developer.aliyun.com/article/74395 Step1:配置yum源 存入以下内容: Step2:更新本地yum缓存 Step3:安装GitLab社区版 Step4:启动Gitlab Step5:登录并配置Gitlab 打开服务器本地浏览器,访问:127.0.0.1 地址,打开 Gitlab 管理后台,

    2024年02月14日
    浏览(29)
  • CentOS7---部署Tomcat和安装Jpress

    静态网页: 请求响应信息,发给客户端进行处理,由浏览器进行解析,显示的页面,静态网页包含文本、图像、Flash动画、超链接等内容,在编写网页源代码时已经确定。除非网页源代码被重新修改,否则这些内容不会发生变化。 动态网页: 请求响应信息,发给事务端进行

    2023年04月15日
    浏览(26)
  • linux centos7安装部署安装Elasticsearch并后台启动

    6、修改jvm.options配置文件 7、创建用户并赋予权限,不能再root用户下启动 useradd 用户名 passwd 用户名 随后会提示输入密码 赋予权限 cd /opt/software/es chown -R 用户名:用户名 ./ —chown将指定文件的拥有者改为指定的用户或组, usermod -g root 用户 —将当前用户添加至root组 8、elastic

    2024年02月16日
    浏览(34)
  • CentOS7安装部署Kafka with KRaft

    Apache Kafka 是一个开源分布式事件流平台,已被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。 KRaft(Kafka Raft)模式是从 Apache Kafka 2.8.0 版本开始引入,KRaft 旨在摒弃对 ZooKeeper 的依赖。在以前的版本中,Apache Kafka 依赖于 ZooKeeper 来管理集群元数据和

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包