CentOS7安装部署Kafka with KRaft

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

CentOS7安装部署Kafka with KRaft

一、前言

1.简介

Apache Kafka 是一个开源分布式事件流平台,已被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。

KRaft(Kafka Raft)模式是从 Apache Kafka 2.8.0 版本开始引入,KRaft 旨在摒弃对 ZooKeeper 的依赖。在以前的版本中,Apache Kafka 依赖于 ZooKeeper 来管理集群元数据和协调集群,但这增加了系统的复杂性和运维负担。KRaft 模式通过引入 Raft 协议直接在 Kafka 内部处理这些功能,从而简化了 Kafka 的架构和部署过程。

2.架构

ARCHITECTURE - Apache Kafka

CentOS7安装部署Kafka with KRaft,# DataWarehouse,# CentOS,kafka,分布式,KRaft

3.环境

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

Kafka 官网:https://kafka.apache.org/

Kafka QuickStart:https://kafka.apache.org/documentation/#quickstart

intro - Apache Kafka:https://kafka.apache.org/intro

Know Streaming 官网:https://knowstreaming.com/

CentOS7安装部署Java11:https://blog.csdn.net/u011424614/article/details/132418561

CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916

二、正文

1.部署服务器

  • Kafka 默认端口
端口 描述
9092 Kafka Clients
9093 Kafka Control Plane
8083 Kafka Connect
8081 Schema Registry
8082 REST Proxy
8088 ksqlDB
  • 服务器
机器名 IP 节点部署
Kafka-cluster-01 192.168.28.121 Kafka 节点
Kafka-cluster-02 192.168.28.122 Kafka 节点
Kafka-cluster-03 192.168.28.123 Kafka 节点
Kafka-cluster-04 192.168.28.124 Know Streaming 管控平台

2.基础环境

1)主机名

  • 修改 4 台服务器的主机名
# 121 执行
hostnamectl set-hostname Kafka-cluster-01 --static
hostnamectl set-hostname Kafka-cluster-01 --transient

# 122 执行
hostnamectl set-hostname Kafka-cluster-02 --static
hostnamectl set-hostname Kafka-cluster-02 --transient

# 123 执行
hostnamectl set-hostname Kafka-cluster-03 --static
hostnamectl set-hostname Kafka-cluster-03 --transient

# 124 执行
hostnamectl set-hostname Kafka-cluster-04 --static
hostnamectl set-hostname Kafka-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.28.121 Kafka-cluster-01
192.168.28.122 Kafka-cluster-02
192.168.28.123 Kafka-cluster-03
192.168.28.124 Kafka-cluster-04
EOF

3)关闭防火墙

  • 可禁用防火墙,或配置开放的端口,后者比较安全
#--关闭防火墙
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.单机部署

在 121 服务器上执行

1)下载软件包

  • 创建安装目录,并下载
mkdir /opt/kafka
cd /opt/kafka

# 下载
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.6.0.tgz

# 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0

2)修改配置文件

  • 编辑 server.properties 配置文件
vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变)
# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.121:9092

# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs

3)格式化存储目录

  • 生成UUID
bin/kafka-storage.sh random-uuid

# 生成的 UUID
1vL12MYgT52x0C01Hny4KQ
  • 格式化存储目录,注意替换生成的 UUID
bin/kafka-storage.sh format -t 1vL12MYgT52x0C01Hny4KQ -c config/kraft/server.properties

4)单机启动

  • 启动
cd /opt/kafka/kafka_2.13-3.6.0
# 启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
# 停止
bin/kafka-server-stop.sh
  • 查看运行情况
jps

5)测试

  • 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0
  • 创建 Topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
  • 写入 event
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092

# 写入内容
first event
second event
  • 读取 event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092

6)自启动

  • 创建 kafka-server.service
cat > /etc/systemd/system/kafka-server.service <<EOF
[Unit]
Description=Kafka Service
After=network.target

[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.6.0/config/kraft/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-stop.sh
Restart=on-failure

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

4.集群部署

1)下载软件包

在 121 服务器上执行

  • 创建安装目录,并下载
mkdir /opt/kafka
cd /opt/kafka

# 下载
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.6.0.tgz

# 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0

2)修改配置文件

在 121 服务器上执行

  • 编辑 server.properties 配置文件
vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变)
# 节点ID,集群节点唯一
node.id=1

# 标识哪些节点是Quorum的投票者节点
controller.quorum.voters=1@192.168.28.121:9093,2@192.168.28.122:9093,3@192.168.28.123:9093

# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.121:9092

# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs

3)拷贝Kafka

在 122、123 服务器上执行

  • 122 和 123 服务器创建目录
mkdir /opt/kafka

在 121 服务器上执行

  • 拷贝 Kafka 到其它服务器
scp -r /opt/kafka/kafka_2.13-3.6.0 root@192.168.28.122:/opt/kafka
scp -r /opt/kafka/kafka_2.13-3.6.0 root@192.168.28.123:/opt/kafka

4)修改配置文件

在 122 服务器上执行

  • 编辑 server.properties 配置文件
cd /opt/kafka/kafka_2.13-3.6.0

vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变;注意这里是 121 服务器拷贝,所以省了2个参数)
# 节点ID,集群节点唯一
node.id=2

# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.122:9092

在 123 服务器上执行

  • 编辑 server.properties 配置文件
cd /opt/kafka/kafka_2.13-3.6.0

vim config/kraft/server.properties
  • 内容(修改以下配置,其它不变;注意这里是 121 服务器拷贝,所以省了2个参数)
# 节点ID,集群节点唯一
node.id=3

# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.123:9092

5)格式化存储目录

在 121 服务器上执行

  • 生成UUID
bin/kafka-storage.sh random-uuid

# 生成的 UUID
OukPqtmXSAO2aYUs9kFFbg

在 121、122、123 服务器上执行

  • 格式化存储目录,使用生成的 UUID
bin/kafka-storage.sh format -t OukPqtmXSAO2aYUs9kFFbg -c config/kraft/server.properties

6)集群启动

在 121、122、123 服务器上执行

  • 启动
cd /opt/kafka/kafka_2.13-3.6.0
# 启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
# 停止
bin/kafka-server-stop.sh
  • 查看运行情况
jps

7)测试

在 121 服务器上执行

  • 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0
  • 创建 Topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
  • 写入 event
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092

# 写入内容
first event
second event
  • 读取 event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092

8)自启动

在 121、122、123 服务器上执行

  • 创建 kafka-server.service
cat > /etc/systemd/system/kafka-server.service <<EOF
[Unit]
Description=Kafka Service
After=network.target

[Service]
Environment="JAVA_HOME=/opt/java/jdk-11.0.19"
Type=simple
User=root
Group=root
ExecStart=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-3.6.0/config/kraft/server.properties
ExecStop=/opt/kafka/kafka_2.13-3.6.0/bin/kafka-server-stop.sh
Restart=on-failure

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

5.Kafka管控平台

在 124 服务器上执行

Know Streaming是一套云原生的Kafka管控平台,脱胎于众多互联网内部多年的Kafka运营实践经验,专注于Kafka运维管控、监控告警、资源治理、多活容灾等核心场景。在用户体验、监控、运维管控上进行了平台化、可视化、智能化的建设,提供一系列特色的功能,极大地方便了用户和运维人员的日常使用,让普通运维人员都能成为Kafka专家。

Know Streaming 部署:https://doc.knowstreaming.com/product/2-quick-start#21%E5%8D%95%E6%9C%BA%E9%83%A8%E7%BD%B2

1)脚本安装

mkdir /opt/KnowStreaming
cd /opt/KnowStreaming

# 在服务器中下载安装脚本, 该脚本中会在当前目录下,重新安装MySQL。重装后的mysql密码存放在当前目录的mysql.password文件中。
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/deploy_KnowStreaming.sh

# 执行脚本(会提示选择安装的版本)
sh deploy_KnowStreaming.sh
  • 访问:http://192.168.28.124:8080
  • 默认账号和密码为:admin / admin

2)Kafka启动JMX

在 121、122、123 服务器上执行

  • 编辑 kafka-server-start.sh 启动脚本
cd /opt/kafka/kafka_2.13-3.6.0/

vim bin/kafka-server-start.sh
  • 编辑内容:除注释外第一行,加入 JMX 端口和指定服务器 IP;注意替换 IP
export JMX_PORT=9999

KAFKA_OPTS="-Dcom.sun.management.jmxremote \
            -Dcom.sun.management.jmxremote.authenticate=false \
            -Dcom.sun.management.jmxremote.ssl=false \
            -Djava.rmi.server.hostname=192.168.28.121"
export KAFKA_OPTS
  • 重启 Kafka(选择其中一种重启方式)
# 脚本 重启
cd /opt/kafka/kafka_2.13-3.6.0/
bin/kafka-server-stop.sh
bin/kafka-server-start.sh -daemon config/kraft/server.properties

# systemctl 重启
systemctl stop kafka-server.service
systemctl start kafka-server.service
systemctl status kafka-server.service
  • 检测 JMX 端口
netstat -tunlp |grep 9999

3)手动启动

  • 服务器重启后,手动启动服务
cd /opt/KnowStreaming/KnowStreaming
# 启动
sh bin/startup.sh
# 关闭
sh bin/shutdown.sh

4)配置 Kafka 集群

CentOS7安装部署Kafka with KRaft,# DataWarehouse,# CentOS,kafka,分布式,KRaft文章来源地址https://www.toymoban.com/news/detail-758110.html

三、其它

1.常用命令

命令 说明
systemctl daemon-reload 重新加载服务配置
systemctl start kafka-server.service 启动服务
systemctl enable kafka-server.service 开机自启动服务
systemctl status kafka-server.service 查询服务状态
systemctl stop kafka-server.service 停止服务
systemctl restart kafka-server.service 重启服务
systemctl disable kafka-server.service 禁用开机自启动服务

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

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

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

相关文章

  • Linux环境下(Centos7) 下安装Kafka详细教程

    1.1 选择镜像: 清华镜像 阿里镜像 可以在上面两个地方选一个合适的镜像 1.2 安装步骤 创建文件夹: 进入文件夹: 下载镜像至新建的文件夹: 此处的zookeeper版本可能已经失效了,同学们可在镜像网站内选择合适的zookeeper版本,然后以此命令替换掉 镜像源下载即可。 解压下载

    2024年02月12日
    浏览(42)
  • CentOS7安装部署Zookeeper

    Apache ZooKeeper 是一个分布式应用程序协调服务;用于维护配置信息、命名、提供分布式同步和组服务。 客户端-服务器模型 :ZooKeeper 遵循客户端-服务器模型,客户端可以向任何服务器节点发起请求。 数据模型 :采用类似文件系统的树形结构来存储数据,每个节点称为 ZNode。

    2024年02月04日
    浏览(40)
  • 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日
    浏览(40)
  • 腾讯云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日
    浏览(28)
  • CentOS7安装和部署Jenkins

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

    2024年02月05日
    浏览(29)
  • 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日
    浏览(25)
  • 在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日
    浏览(30)
  • CentOS7---部署Tomcat和安装Jpress

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

    2023年04月15日
    浏览(29)
  • 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日
    浏览(36)
  • 基于CentOS7.9安装部署docker(简洁版)

    官方文档: https://docs.docker.com/engine/install/centos/ 阿里云文档:docker-ce镜像_docker-ce下载地址_docker-ce安装教程-阿里巴巴开源镜像站 # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo https://mirrors

    2024年02月12日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包