Kafka 命令速览——注意事项

Kafka 命令速览说明

主题操作

使用 kafka-topic.sh 工具可以执行主题大部分操作。我们可以创建、修改、删除和查看集群里的主题。当然要操作topic元数据,而这些元数据存放在Zookeeper上,因此我们需要通过 --zookeeper 参数,比如 --zookeeper hadoop102:2181/kafka-cluster (zookeeper服务要提前启动)。

创建主题

在集群中创建一个主题需要用到3个参数

  • 主题名字
  • 复制系数
    • 主题的副本数量
  • 分区
    • 主题的分区数量
命令
$ kafka-topic.sh --zookeeper url:port/dir --create --topic <name> --replication-factor <integer> --partitions <integer>

实例我们创建一个名为 my-topic 的主题,主题包含8个分区,每个分区拥有2个副本。

在这里插入图片描述

增加分区

主题基于分区进行伸缩和复制,增加分区主要是为了扩展主题容量或者降低单个分区的吞吐量。

如果在单个消费者群组内运行更多的消费者,那么主题数量也需要相应增加,因为一个分区只能由群组里的一个消费者读取。

调整基于键的主题

这是很困难的,如果改变了分区的数量,则键到分区之间的映射也会发生变化。

索引继续键的主题来说,建议在一开始就设置好分区的数量,避免以后对其进行调整。

命令

实例将 my-topic 主题的分区数量增加到 16

# bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic my-topic --partitions 16

在这里插入图片描述

删除主题

如果一个主题不再被使用,只要他还存在集群中,就会占用一定数量的磁盘和文件句柄。为了能够删除主题,broker的delete.topic.enable = true。

删除主题会丢弃主题里所有的数据,这是一个不可逆的操作,因此要小心。

命令

示例:删除 my-topic 主题。

# bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic my-topic

主题列表

列出集群中所有主题,主题之间没有顺序。

命令
# bin/kafka-topics.sh --zookeeper hadoop102:2181 --list

在这里插入图片描述

主题详细信息

详细信息包括 分区数量、主题覆盖配置以及每个分区的副本清单。

命令
# bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe

在这里插入图片描述

–under-replicated-partitions 参数可以列出所有包含不同步副本的分区

# bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe --under-replicated-partitions

–unavaliable-partitions 参数可以列出没有首领的分区,这些分区已经处于离线状态,对于生产者和消费者来说是不可用的。

# bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe --unavaliable-partitions

消费者群组

旧版本的消费者客户端,使用 --zookeeper 和 --list 参数列出消费者群组;

新版本的消费者客户端,则要使用 --bootstrap-server、–list 和 --new-consumer 参数。

命令

旧版本:

# bin/kafka-consumer-groups.sh --zookeeper hadoop102:2181 --list

新版本:

# bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server hadoop102:2181 --list

在这里插入图片描述

获取一个群组的详细信息

# bin/kafka-consumer-groups.sh --zookeeper hadoop102:2181 --describe --group console-consumer-19036

在这里插入图片描述

相关参数:

  • CURRENT-OFFSET:消费者群组最近提交的偏移量,也就是消费者在分区中读取的当前位置
  • LOG-END-OFFSET:当前高水位偏移量
  • LAG:消费者的CURRENT-OFFSET和broker的LOG-END-OFFSET之间的差距

动态配置变更

命令

实例:将主题 my-topic 的消息保留时间设为 1 个小时。

# kafka-configs.sh --zookeeper hadoop102:2181 --alter --entity-type topics --entity-name my-topic --add-config retention.ms=3600000

在这里插入图片描述

消费和生产

消费者命令

–topic 用于指定单个待读取的主题

–whitelist 与白名单正则表达式匹配的主题将会被读取

–blacklist 与黑名单正则表达式匹配的主题不会被读取

# bin/kafka-console-consumer.sh --zookeeper hadoop102:2181 --topic my-topic

–from-beginning 指定从最旧的偏移量开始读取数据,否则就从最新的偏移量开始读取。

–max-messages NUM 指定在退出之前最多读取NUM个消息

生产者命令

# bin/kafka-console-producer.sh --broker-list hadoop102:9092,hadoop103:9092 --topic my-topic
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值