• 如何在Linux系统中搭建Kafka集群


    一、概述

    Kafka是一个由Apache软件基金会开发的开源流处理平台,是一个由Scala和Java编写的高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

    Kafka集群依赖于Zookeeper进行协调,注册在同一个Zookeeper集群中的各个Kafka节点属于同一个Kafka集群,Kafka通过brokerId来区分集群中的不同节点。

    二、集群搭建

    1、目标

    分别在192.168.1.100、192.168.1.101和192.168.1.102三台虚拟机安装Kafka,搭建Kafka集群。

    2、准备

    在192.168.1.100、192.168.1.101和192.168.1.102三台虚拟机安装Zookeeper,搭建Zookeeper集群,视频教程:https://www.bilibili.com/video/BV1Ez421a7fP

    3、步骤

    a、下载:https://downloads.apache.org/kafka,这里下载kafka_2.12-3.7.0.tgz

    b、连接:通过MobaXterm 远程连接192.168.1.100虚拟机;

    c、上传:将kafka_2.12-3.7.0.tgz压缩文件上传至/opt目录;

    d、解压:将Kafka压缩文件解压至/usr/local目录

    [root@localhost ~]# tar -zxvf /opt/kafka_2.12-3.7.0.tgz -C /usr/local
    

    e、删除:删除压缩文件

    [root@localhost ~]# rm -f /opt/kafka_2.12-3.7.0.tgz
    

    f、创建目录:

    /usr/local/kafka_2.12-3.7.0根目录下创建logs文件夹

    [root@localhost ~]# mkdir /usr/local/kafka_2.12-3.7.0/logs
    

    g、节点拷贝:

    [root@localhost ~]# scp -r /usr/local/kafka_2.12-3.7.0 root@192.168.1.101:/usr/local/kafka_2.12-3.7.0
    [root@localhost ~]# scp -r /usr/local/kafka_2.12-3.7.0 root@192.168.1.102:/usr/local/kafka_2.12-3.7.0
    

    注意:节点拷贝操作只在192.168.1.100节点执行。

    h、修改配置:

    各个Kafka节点修改/usr/local/kafka_2.12-3.7.0/config/server.properties文件,命令如下:

    192.168.1.100节点:

    [root@localhost ~]# tee /usr/local/kafka_2.12-3.7.0/config/server.properties <<-'EOF'
    # 同一Kafka集群下broker.id必须不同
    broker.id=1
    advertised.listeners=PLAINTEXT://192.168.1.100:9092
    log.dirs=/usr/local/kafka_2.12-3.7.0/logs
    zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
    EOF
    

    192.168.1.101节点:

    [root@localhost ~]# tee /usr/local/kafka_2.12-3.7.0/config/server.properties <<-'EOF'
    # 同一Kafka集群下broker.id必须不同
    broker.id=2
    advertised.listeners=PLAINTEXT://192.168.1.101:9092
    log.dirs=/usr/local/kafka_2.12-3.7.0/logs
    zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
    EOF
    

    192.168.1.102节点:

    [root@localhost ~]# tee /usr/local/kafka_2.12-3.7.0/config/server.properties <<-'EOF'
    # 同一Kafka集群下broker.id必须不同
    broker.id=3
    advertised.listeners=PLAINTEXT://192.168.1.102:9092
    log.dirs=/usr/local/kafka_2.12-3.7.0/logs
    zookeeper.connect=192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181
    EOF
    

    i、环境变量

    [root@localhost ~]# tee -a /etc/profile <<-'EOF'
    export KAFKA_HOME=/usr/local/kafka_2.12-3.7.0
    export PATH=$PATH:$KAFKA_HOME/bin
    EOF
    [root@localhost ~]# source /etc/profile
    

    j、开放端口:

    [root@localhost ~]# firewall-cmd --zone=public --add-port=9092/tcp --permanent
    [root@localhost ~]# firewall-cmd --reload
    

    注意:每个Zookeeper所在节点都需要通过执行上面命令开放端口。

    三、启动节点

    1、启动Zookeeper集群

    [root@localhost ~]# /usr/local/apache-zookeeper-3.8.4-bin/bin/zkStart.sh
    

    2、逐个启动Kafka节点

    [root@localhost ~]# kafka-server-start.sh $KAFKA_HOME/config/server.properties
    
  • 相关阅读:
    夯实基础,编译器原理前端部分浅析
    C#程序设计之windows应用程序设计基础
    40 JAVA安全-JWT安全及预编译CASE注入等
    yum升级mysql
    自动填充字段值
    @Api注解
    UDP-创建群聊
    grpc多语言通信之GO和DART
    mmdetection - 训练数据加载流程之pipeline
    基于GATK流程化进行SNP calling
  • 原文地址:https://blog.csdn.net/wangshuxuncom/article/details/139323064