kafka学习笔记--安装部署、简单操作

本文内容来自尚硅谷B站公开教学视频,仅做个人总结、学习、复习使用,任何对此文章的引用,应当说明源出处为尚硅谷,不得用于商业用途。

如有侵权、联系速删

视频教程链接:【尚硅谷】Kafka3.x教程(从入门到调优,深入全面)

文章目录

  • [1 安装部署](#1 安装部署)
    • [1.1 集群规划](#1.1 集群规划)
    • [1.2 集群部署](#1.2 集群部署)
  • [2 命令行操作](#2 命令行操作)
    • [2.1 主题](#2.1 主题)
    • [2.2 生产者](#2.2 生产者)
    • [2.3 消费者](#2.3 消费者)
    • [2.4 消费者组](#2.4 消费者组)

1 安装部署

1.1 集群规划

这里采用的是三节点的kafka集群,名称为hadoop102、hadoop103、hadoop104

1.2 集群部署

官方下载地址:http://kafka.apache.org/downloads.html

  1. 解压安装包

    shell 复制代码
    tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/
  2. 修改解压后的文件名称

    shell 复制代码
     mv kafka_2.12-3.0.0/ kafka
  3. 进入到/opt/module/kafka 目录,修改配置文件

    shell 复制代码
     cd config/
     vim server.properties

    按需修改以下内容:

    shell 复制代码
    #broker 的全局唯一编号,不能重复,只能是数字(一般修改这个)。
    broker.id=0
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘 IO 的线程数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔。(一般修改这个)
    log.dirs=/opt/module/kafka/datas
    #topic 在当前 broker 上的分区个数
    num.partitions=1
    #用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    # 每个 topic 创建时的副本数,默认时 1 个副本
    offsets.topic.replication.factor=1
    #segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #每个 segment 文件的大小,默认最大 1G
    log.segment.bytes=1073741824
    # 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    #配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)(一般修改这个)
    zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
  4. 另外两个节点也装安装包

  5. 分别在 hadoop103 和 hadoop104 上修改配置文件/opt/module/kafka/config/server.properties中的 broker.id=1、broker.id=2
    注:broker.id 不得重复,整个集群中唯一。

  6. 配置环境变量

    • 在/etc/profile.d/my_env.sh 文件中增加 kafka 环境变量配置

      shell 复制代码
      sudo vim /etc/profile.d/my_env.sh

      增加如下内容:

      shell 复制代码
      #KAFKA_HOME
      export KAFKA_HOME=/opt/module/kafka
      export PATH=$PATH:$KAFKA_HOME/bin
    • 刷新一下环境变量。

      shell 复制代码
      source /etc/profile
    • 其他节点一样的操作。
      在另外两个节点 source刷新

      shell 复制代码
      source /etc/profile
  7. 启动集群
    先启动 Zookeeper 集群,然后启动 Kafka。

    shell 复制代码
    zk.sh start
    kafka-server-start.sh -daemon config/server.properties
  8. 关闭集群

    shell 复制代码
    bin/kafka-server-stop.sh

    注意:停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止,Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。

2 命令行操作

2.1 主题

1 查看操作主题命令参数

shell 复制代码
bin/kafka-topics.sh + 参数
参数 描述
--bootstrap-server <String: server toconnect to> 连接的 Kafka Broker 主机名称和端口号。
--topic <String: topic> 操作的 topic 名称。
--create 创建主题。
--delete 删除主题。
--alter 修改主题。
--list 查看所有主题。
--describe 查看主题详细描述。
--partitions <Integer: # of partitions> 设置分区数。
--replication-factor<Integer: replication factor> 设置分区副本。
--config <String: name=value> 更新系统默认的配置。

操作时要先连接,所以后面的命令行都有--bootstrap-server hadoop102:9092
2 查看当前服务器中的所有 topic

shell 复制代码
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list

3 创建一个topic,这里我起名为first

shell 复制代码
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first

选项说明:
--topic定义topic名
--replication-factor定义副本数
--partitions 定义分区数
4 查看 first 主题的详情

shell 复制代码
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first

5 修改分区数(注意:分区数只能增加,不能减少)

shell 复制代码
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3

6 再次查看 first 主题修改后的详情

shell 复制代码
 bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first

7 删除 topic

shell 复制代码
 bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first

2.2 生产者

1 查看生产者

shell 复制代码
bin/kafka-console-producer.sh
参数 描述
--bootstrap-server <String: server toconnect to> 连接的 Kafka Broker 主机名称和端口号。
--topic <String: topic> 操作的 topic 名称。

2 发送消息

shell 复制代码
bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first
hello world
atguigu atguigu

2.3 消费者

1 查看消费者

shell 复制代码
bin/kafka-console-consumer.sh
参数 描述
--bootstrap-server <String: server toconnect to> 连接的 Kafka Broker 主机名称和端口号。
--topic <String: topic> 操作的 topic 名称。
--from-beginning 从头开始消费。
--group <String: consumer group id> 指定消费者组名称。

2 消费消息

  • 消费指定主题的数据

    shell 复制代码
    bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
  • 把主题中所有的数据都读取出来(包括历史数据)。

    shell 复制代码
    bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first

2.4 消费者组

1 查看消费者组

shell 复制代码
bin/kafka-consumer-groups.sh
参数 描述
--bootstrap-server <String: server toconnect to> 连接的 Kafka Broker 主机名称和端口号。
--describe 列出消费者组详情信息。
--list 列出所有消费者。
--group <String: consumer group id> 指定消费者组名称。

如果我们要查询testGroup消费者组的详细信息,执行如下命令

shell 复制代码
bin/kafka-consumer-groups.sh --bootstrap-server hadoop102:9092 --describe --group testGroup

其中列出的参数含义为:

参数 描述
GROUP 消费者组名
TOPIC 主题名称
PARTITION 该主题消息的分区ID列表
CURRENT-OFFSET 最后被消费的消息的偏移量
LOG-END-OFFSET 该主题最后一条消息的偏移量
LAG 消息积压量
CONSUMER-ID 该组消费者ID
HOST 该组消费者主机IP/brokerID
CLIENT-ID 该组消费者客户端ID
相关推荐
xiaoyalian2 小时前
R语言绘图过程中遇到图例的图块中出现字符“a“的解决方法
笔记·r语言·数据可视化
Red Red4 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
贰十六5 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
知兀5 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
Natural_yz6 小时前
大数据学习17之Spark-Core
大数据·学习·spark
qq_172805596 小时前
RUST学习教程-安装教程
开发语言·学习·rust·安装
一只小小汤圆6 小时前
opencascade源码学习之BRepOffsetAPI包 -BRepOffsetAPI_DraftAngle
c++·学习·opencascade
醉陌离6 小时前
渗透测试笔记——shodan(4)
笔记
虾球xz6 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
LateBloomer7776 小时前
FreeRTOS——信号量
笔记·stm32·学习·freertos