Kafka多版本集群搭建超详细

1.前言

大家好,我是楚生辉,在未来的日子里我们一起来学习大数据相关的技术,一起努力奋斗,遇见更好的自己!

百度百科对Kafka有如下描述:Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

本文详细的介绍了多个版本的Kafka集群安装,包括其多个版本之间的命令差异,有需要的小伙伴可以自行获取与学习~

2.前期准备

  1. 所需资料
链接:https://pan.baidu.com/s/1Afl-In12tciFpoUmZTmXqA 
提取码:4wtw 
  1. 准备三个虚拟机:

    192.168.88.101 node01

    192.168.88.102 node02

    192.168.88.103 node03

  2. Kafka运行在JVM上,需要安装JDK

  3. kafka依赖zookeeper,需要安装zookeeper

注意,本文中[]就表示操作的节点,例如[1]就表示在node01上操作,[123]就表示在全部节点执行

3.搭建Zookeeper

  • 首先将三台虚拟机切换到相互免秘钥快照(keysfree)

  • 上传Zookeeper,解压,拷贝

    [root@node01 ~]# tar -zxvf zookeeper-3.4.5.tar.gz
    [root@node01 ~]# mv zookeeper-3.4.5 /opt/bdp/
    
  • 修改配置文件

    [root@node01 conf]# cd /opt/bdp/zookeeper-3.4.5/conf/
    [root@node01 conf]# cp zoo_sample.cfg zoo.cfg
    [root@node01 conf]# vim zoo.cfg
    
    # the directory where the snapshot is stored.
    dataDir=/var/bdp/zookeeper
    # the port at which the clients will connect
    clientPort=2181
    
    # 设置服务器内部通信的地址和zk集群的节点
    server.1=node01:2888:3888
    server.2=node02:2888:3888
    server.3=node03:2888:3888
    
  • 创建myid

    [123]mkdir -p /var/bdp/zookeeper
    [123]touch /var/bdp/zookeeper/myid
    [1] echo 1 > /var/bdp/zookeeper/myid
    [2] echo 2 > /var/bdp/zookeeper/myid
    [3] echo 3 > /var/bdp/zookeeper/myid
    
  • 拷贝Zookeeper到其他虚拟机

    [root@node01 bdp]scp -r zookeeper-3.4.5 root@node02:/opt/bdp/
    [root@node01 bdp]scp -r zookeeper-3.4.5 root@node03:/opt/bdp/
    
  • 设置环境变量

    vim /etc/profile

    export ZOOKEEPER_HOME=/opt/bdp/zookeeper-3.4.5
    export PATH=$ZOOKEEPER_HOME/bin:$PATH
    
    • 拷贝到其他虚拟机
    [1]scp /etc/profile root@node02:/etc/profile
    [1]scp /etc/profile root@node03:/etc/profile
    [123] source /etc/profile
    
  • 开启集群

    [123] zkServer.sh start
    [123] zkServer.sh status
    [123] zkServer.sh stop
    

4.Kafka安装(低于2.2)

node01 node02 node03
zookeeper zookeeper zookeeper
kafka kafka kafka
  • 基于Zookeeper搭建并开启

    • 验证ZK的可用性
    • [123]zkServer.sh start
  • 配置Kafka

    • 基本操作

      • 上传解压拷贝 tar -zxvf kafka_2.11-0.8.2.1.tgz
    • 修改配置文件

      • cd /opt/bdp/kafka_2.11-0.8.2.1/config/
        vim server.properties
        
        20 	broker.id=0
        25 	port=9092
        58 	log.dirs=/var/bdp/kafka-logs
        118 zookeeper.connect=node01:2181,node02:2181,node03:2181
        
    • 修改环境变量

      • vim /etc/profile
        
        export KAFKA_HOME=/opt/bdp/kafka_2.11-0.8.2.1
        export PATH=$KAFKA_HOME/bin:$PATH
        
        ## 配置文件生效
        source /etc/profile
        
    • 将文件目录拷贝到其他机器

      [1]scp -r /opt/bdp/kafka_2.11-0.8.2.1 root@node02:/opt/bdp/kafka_2.11-0.8.2.1
      [1]scp -r /opt/bdp/kafka_2.11-0.8.2.1 root@node03:/opt/bdp/kafka_2.11-0.8.2.1
      [1]scp /etc/profile root@node02:/etc/profile
      [1]scp /etc/profile root@node03:/etc/profile
      [123] source /etc/profile
      
    • 修改其他机器上的配置

      ## vim server.properties
      [2]broker.id=1
      [3]broker.id=2
      
    • 启动集群 启动一定要先开zookeeper zkServer.sh start

      [123] kafka-server-start.sh /opt/bdp/kafka_2.11-0.8.2.1/config/server.properties

    • 关闭集群

      kafka-server-stop.sh

    • 常见命令

      # 创建主题
      kafka-topics.sh --zookeeper node0101:2181,node02:2181,node03:2181 -- create --replication-factor 2 --partitions 3 --topic userlog
      kafka-topics.sh --zookeeper node0101:2181 --create --replication-factor 2 --partitions 6 --topic studentlog
      
      # 删除一个主题
      kafka-topics.sh --zookeeper node0101:2181 --delete --replication-factor 2 --partitions 6 --topic baidu
      
      # 查看所有主题
      kafka-topics.sh --zookeeper node0101:2181,node02:2181,node03:2181 --list
      
      # 查看主题
      kafka-topics.sh --zookeeper node0101:2181,node02:2181,node03:2181 --describe --topic userlog
      
      # 创建生产者
      kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic userlog
      
      # 创建消费者
      kafka-console-consumer.sh --zookeeper node0101:2181,node02:2181,node03:2181 --from-beginning --topic userlog
      

5.Kafka安装(高于2.2)

node01 node02 node03
zookeeper zookeeper zookeeper
kafka kafka kafka
  • 基于Zookeeper搭建并开启

    • 验证ZK的可用性
    • [123] zkServer.sh start
  • 配置Kafka

    • 基本操作

      • 上传解压拷贝 tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/bdp/
    • 修改配置文件

      • mv kafka_2.12-3.0.0 kafka
        cd /opt/bdp/kafka/config/
        vim server.properties
        
        broker.id=0
        log.dirs=/var/bdp/kafka-logs
        zookeeper.connect=node01:2181,node02:2181,node03:2181/kafka
        
    • 修改环境变量

      • vim /etc/profile
        
        export KAFKA_HOME=/opt/bdp/kafka
        export PATH=$KAFKA_HOME/bin:$PATH
        
        ## 配置文件生效
        source /etc/profile
        
    • 将文件目录拷贝到其他机器

      [1]scp -r /opt/bdp/kafka root@node02:/opt/bdp/kafka
      [1]scp -r /opt/bdp/kafka root@node03:/opt/bdp/kafka
      [1]scp /etc/profile root@node02:/etc/profile
      [1]scp /etc/profile root@node03:/etc/profile
      [123] source /etc/profile
      
    • 修改其他机器上的配置

      ## vim server.properties
      [2]broker.id=1
      [3]broker.id=2
      
    • 启动集群 启动一定要先开zookeeper zkServer.sh start

      [123] kafka-server-start.sh /opt/bdp/kafka/config/server.properties

    • 关闭集群

      kafka-server-stop.sh

    • 常见命令

      # 创建名为first的topic(主题)
      kafka-topics.sh --bootstrap-server node01:9092 --create --partitions 1 --replication-factor 3 --topic first
      
      # 删除一个主题
      kafka-topics.sh --bootstrap-server node01:9092 --delete --topic first
      
      # 查看所有主题
      kafka-topics.sh --bootstrap-server node01:9092 --list
      
      # 查看主题详情
      kafka-topics.sh --bootstrap-server node01:9092 --describe --topic first
      
      # 创建生产者
      kafka-console-producer.sh --bootstrap-server node01:9092 --topic first
      
      # 创建消费者
      kafka-console-consumer.sh --bootstrap-server node01:9092 --topic first
      

你可能感兴趣的:(学无止境,kafka,java,分布式)