• CentOS7安装部署Kafka with KRaft


    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 默认端口
    端口描述
    9092Kafka Clients
    9093Kafka Control Plane
    8083Kafka Connect
    8081Schema Registry
    8082REST Proxy
    8088ksqlDB
    • 服务器
    机器名IP
    Kafka-cluster-01192.168.28.121
    Kafka-cluster-02192.168.28.122
    Kafka-cluster-03192.168.28.123
    Kafka-cluster-04192.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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2)Hosts文件

    • 修改 4 台服务器的 hosts 文件
    cat > /etc/hosts <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3)关闭防火墙

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

    4)JDK 安装部署

    在 4 台服务器上安装JDK

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2)修改配置文件

    • 编辑 server.properties 配置文件
    vim config/kraft/server.properties
    
    • 1
    • 内容(修改以下配置,其它不变)
    # Kafka broker对外公布的监听地址和端口
    advertised.listeners=PLAINTEXT://192.168.28.121:9092
    
    # Kafka存储日志数据的目录路径
    log.dirs=/data/kraft-combined-logs
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3)格式化存储目录

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 查看运行情况
    jps
    
    • 1

    5)测试

    • 进入安装目录
    cd /opt/kafka/kafka_2.13-3.6.0
    
    • 1
    • 创建 Topic
    bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
    
    • 1
    • 写入 event
    bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092
    
    # 写入内容
    first event
    second event
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 读取 event
    bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092
    
    • 1

    6)自启动

    • 创建 kafka-server.service
    cat > /etc/systemd/system/kafka-server.service <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 启动服务,并设置开机自启动
    systemctl daemon-reload
    systemctl start kafka-server.service
    systemctl enable kafka-server.service
    
    • 1
    • 2
    • 3
    • 查询进程状态
    systemctl status kafka-server.service
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2)修改配置文件

    在 121 服务器上执行

    • 编辑 server.properties 配置文件
    vim config/kraft/server.properties
    
    • 1
    • 内容(修改以下配置,其它不变)
    # 节点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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3)拷贝Kafka

    在 122、123 服务器上执行

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

    在 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
    
    • 1
    • 2

    4)修改配置文件

    在 122 服务器上执行

    • 编辑 server.properties 配置文件
    cd /opt/kafka/kafka_2.13-3.6.0
    
    vim config/kraft/server.properties
    
    • 1
    • 2
    • 3
    • 内容(修改以下配置,其它不变;注意这里是 121 服务器拷贝,所以省了2个参数)
    # 节点ID,集群节点唯一
    node.id=2
    
    # Kafka broker对外公布的监听地址和端口
    advertised.listeners=PLAINTEXT://192.168.28.122:9092
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在 123 服务器上执行

    • 编辑 server.properties 配置文件
    cd /opt/kafka/kafka_2.13-3.6.0
    
    vim config/kraft/server.properties
    
    • 1
    • 2
    • 3
    • 内容(修改以下配置,其它不变;注意这里是 121 服务器拷贝,所以省了2个参数)
    # 节点ID,集群节点唯一
    node.id=3
    
    # Kafka broker对外公布的监听地址和端口
    advertised.listeners=PLAINTEXT://192.168.28.123:9092
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5)格式化存储目录

    在 121 服务器上执行

    • 生成UUID
    bin/kafka-storage.sh random-uuid
    
    # 生成的 UUID
    OukPqtmXSAO2aYUs9kFFbg
    
    • 1
    • 2
    • 3
    • 4

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

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 查看运行情况
    jps
    
    • 1

    7)测试

    在 121 服务器上执行

    • 进入安装目录
    cd /opt/kafka/kafka_2.13-3.6.0
    
    • 1
    • 创建 Topic
    bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
    
    • 1
    • 写入 event
    bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092
    
    # 写入内容
    first event
    second event
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 读取 event
    bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092
    
    • 1

    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
  • 1
  • 2
  • 3
systemctl status kafka-server.service
  • 1

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2)手动启动

cd /opt/KnowStreaming/KnowStreaming
# 启动
sh bin/startup.sh
# 关闭
sh bin/shutdown.sh
  • 1
  • 2
  • 3
  • 4
  • 5

三、其它

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禁用开机自启动服务
  • 相关阅读:
    SVN项目,提交Git保留之前提交记录
    启动两个线程,用另一个线程以通知的终止另一个线程
    Ubuntu18.04安装MySQL及Demos
    阿里云服务器ECS_云主机_服务器托管_计算性能介绍
    学习编程的第十九天
    5G RedCap工业智能网关
    【问题思考总结】NAT的公有地址怎么转换为私有地址?【MAC地址和IP地址的转换】
    MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
    正版软件 | R-Drive Image:数据安全守护者,您的智能备份专家
    微信小程序weui-form表单的使用
  • 原文地址:https://blog.csdn.net/u011424614/article/details/134521509