文章目录
- CentOS7安装部署Kafka with KRaft
- 一、前言
- 1.简介
- 2.架构
- 3.环境
- 二、正文
- 1.部署服务器
- 2.基础环境
- 1)主机名
- 2)Hosts文件
- 3)关闭防火墙
- 4)JDK 安装部署
- 3.单机部署
- 1)下载软件包
- 2)修改配置文件
- 3)格式化存储目录
- 4)单机启动
- 5)测试
- 6)自启动
- 4.集群部署
- 1)下载软件包
- 2)修改配置文件
- 3)拷贝Kafka
- 4)修改配置文件
- 5)格式化存储目录
- 6)集群启动
- 7)测试
- 8)自启动
- 5.Kafka管控平台
- 1)脚本安装
- 2)手动启动
- 三、其它
- 1.常用命令
CentOS7安装部署Kafka with KRaft
一、前言
1.简介
Apache Kafka 是一个开源分布式事件流平台,已被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。
2.架构
ARCHITECTURE - Apache Kafka
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-cluster-02 | 192.168.28.122 |
Kafka-cluster-03 | 192.168.28.123 |
Kafka-cluster-04 | 192.168.28.124 |
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.0vim 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.0vim 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)手动启动
- 服务器重启后,手动启动服务
cd /opt/KnowStreaming/KnowStreaming
# 启动
sh bin/startup.sh
# 关闭
sh bin/shutdown.sh
三、其它
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 | 禁用开机自启动服务 |