Apache Kafka 是一个开源分布式事件流平台,已被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。
KRaft(Kafka Raft)模式是从 Apache Kafka 2.8.0 版本开始引入,KRaft 旨在摒弃对 ZooKeeper 的依赖。在以前的版本中,Apache Kafka 依赖于 ZooKeeper 来管理集群元数据和协调集群,但这增加了系统的复杂性和运维负担。KRaft 模式通过引入 Raft 协议直接在 Kafka 内部处理这些功能,从而简化了 Kafka 的架构和部署过程。
ARCHITECTURE - Apache Kafka
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
端口 | 描述 |
---|---|
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 管控平台 |
# 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
cat > /etc/hosts <
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 <
- 启动服务,并设置开机自启动
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 <
- 启动服务,并设置开机自启动
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
禁用开机自启动服务
你可能感兴趣的:(#,DataWarehouse,#,CentOS,kafka,分布式,KRaft)