• kafka集群搭建


    0,用VMWare安装3台CentOS8虚拟机

     0.1,虚拟网络地址如下:

            hostname                      ipaddress                   subnet mask                          geteway    

        1、 CentOS-1      192.168.213.135    255.255.255.0      192.168.213.2

        2、 CentOS-2      192.168.213.136    255.255.255.0      192.168.213.2

        3、 CentOS-3      192.168.213.137    255.255.255.0      192.168.213.2

     0.2,修改host文件,将hostname添加到本机

        进入etc目录:cd /etc/

        使用vim命令修改host:vim hosts

        输入 i 进入编辑模式

        增加IP地址和hostname对应关系:    

        192.168.213.135 CentOS-1
        192.168.213.136 CentOS-2
        192.168.213.137 CentOS-3

        esc退出编辑模式,输入 :wq 保存更改

        

    1,搭建zookeeper集群

      kafka是依赖于zookeeper的,单机模式下可以直接用kafka自带zookeeper(config/zookeeper.properties)启动,但是单机并不是kafka的价值所在,所以要搭建自己的zookeeper集群

      博客园上有篇文章写zookeeper集群搭建的文章,写的不错,可供参考:https://www.cnblogs.com/ysocean/p/9860529.html

      这里我们的zookeeper配置文件,增加的server.0、server.1、server.2分别为:

      server.0=192.168.213.135:2888:3888
      server.1=192.168.213.136:2888:3888
      server.2=192.168.213.137:2888:3888

      当然,由于上一步我们设置了hostname,这里的IP也可以直接写成hostname的形式:

      server.0=CentOS-1:2888:3888
      server.1=CentOS-2:2888:3888
      server.2=CentOS-3:2888:3888

      另外增加日志输出目录:dataLogDir=/tmp/zookeeper/log

       

     2,下载kafka安装包

      官网上下载最新kafka安装包,https://kafka.apache.org/downloads,使用tar命令解压,这里我们将/usr/lcoal 目录作为所有软件的安装目录,将kafka解压到这个目录

      解压命令行:tar -vxzf kafka_2.13-2.6.0.tgz

      之后我们将kafka配置到环境变量里:

      进入etc目录:cd /etc/

      vim命令编辑profile文件:vim profile

      export KAFKA_HOME=/usr/local/kafka_2.13-2.6.0
      export PATH=$PATH:$KAFKA_HOME/bin

      如图:

      

      :wq保存退出,然后使用source命令,使配置文件立即生效:source profile

      配置环境变量这一步不是必须的,如果不配置那么在每次启动kafka的时候,需要在kafka的bin目录中执行启动命令。  

    3,修改server.properties配置文件

      进入解压的kafka的config目录:cd /usr/local/kafka_2.13-2.6.0/config/

      vim命令修改server.properties文件(这里的zookeeper.properties就用不到了):vim server.properties

      指定zookeeper集群地址:zookeeper.connect=CentOS-1:2181,CentOS-2:2181,CentOS-3:2181

      修改broker.id,值从1开始的正整数:broker.id=1(三台broker都要改,依次向后排列即可)

      

     

    4,启动kafka

      使用官方给出的命令,稍作修改启动:

      nohup kafka-server-start.sh /usr/local/kafka_2.13-2.6.0/config/server.properties &

      因为前面设置了环境变量,所以可以在任意位置执行启动命令,但需要将server.properties的路径写为绝对路径

      这里我们将kafka作为后台启动了,使用的命令是nohup

      

      出现如上图的结果,说明启动无报错,图中6182是进程pid,我们还可以使用jps命令,查看是否有pid为6182的进程:jps

         

      有pid为6182的进程,kafka已启动  

    5,创建topic

      在任意一个broker上创建topic,使用官方命令稍作修改,如下

      kafka-topics.sh --create --zookeeper CentOS-1,CentOS-2,CentOS-3 --topic mytopic --partitions 3 --replication-factor 3

      这里我们使用指定的zookeeper集群:CentOS-1,CentOS-2,CentOS-3

      --topic 主题名称,这里是mytopic

      --partitions 主题下有几个分区,这里设置了3个

      --replication-factor 副本数,这里同样设置了3个

        

    6,查看topic详情

      在任意一个broker上查看topic,使用官方命令稍作修改,如下

      kafka-topics.sh --describe --zookeeper CentOS-1,CentOS-2,CentOS-3 --topic mytopic

     

    7,生产者和消费者的创建 

      7.1 创建生产者

      kafka-console-producer.sh --topic mytopic --broker-list localhost:9092

      7.2 创建消费者

      kafka-console-consumer.sh --topic mytopic --from-beginning --bootstrap-server localhost:9092

      生产者生产消息,消费者能够接收到消息

      

     

    8,如果启动失败,可尝试:

      1,查看防火墙是否关闭;

      2,检查broker.id是否正确设置;

      3,删除数据目录(log)中所有文件,重新启动。log目录是在server.properties中设置的:log.dirs=/tmp/kafka-logs 。如果之前没有搭建成功,在数据目录中会生成一个mata.properties文件,里面包含了broker.id的值。在搭建完成后,当前的broker.id和mata文件不一致,就会报错。

  • 相关阅读:
    linux常用命令
    BAT:如何用批处理清空某个文件的内容
    Java_Blog01:编程入门
    Azkaban的job从创建到执行
    Sqoop1的导入导出
    Java 知识点干货
    启动Eclipse时报错如何解决?
    如何搭建JDK环境和配置JDK环境变量
    Create OpenStack and Docker base image based on CentOS7-mini ISO
    docker-ce install on CentOS7-mini
  • 原文地址:https://www.cnblogs.com/huyueping/p/13992735.html
Copyright © 2020-2023  润新知