9. kafka shell脚本用法详解

本文详细介绍了Kafka安装目录下的各种shell脚本及其用途,包括Kafka Connect的单机和分布式模式、配置管理、消费者与生产者脚本、消费者组管理、性能测试、分区重分配等,帮助读者理解并掌握Kafka的运维操作。
摘要由CSDN通过智能技术生成

kafka安装目录下的bin目录包含了很多运维可操作的shell脚本,列举如下:

脚本名称 用途描述
connect-distributed.sh 连接kafka集群模式
connect-standalone.sh 连接kafka单机模式
kafka-acls.sh todo
kafka-broker-api-versions.sh todo
kafka-configs.sh 配置管理脚本
kafka-console-consumer.sh kafka消费者控制台
kafka-console-producer.sh kafka生产者控制台
kafka-consumer-groups.sh kafka消费者组相关信息
kafka-consumer-perf-test.sh kafka消费者性能测试脚本
kafka-delegation-tokens.sh todo
kafka-delete-records.sh 删除低水位的日志文件
kafka-log-dirs.sh kafka消息日志目录信息
kafka-mirror-maker.sh 不同数据中心kafka集群复制工具
kafka-preferred-replica-election.sh 触发preferred replica选举
kafka-producer-perf-test.sh kafka生产者性能测试脚本
kafka-reassign-partitions.sh 分区重分配脚本
kafka-replay-log-producer.sh todo
kafka-replica-verification.sh 复制进度验证脚本
kafka-run-class.sh todo
kafka-server-start.sh 启动kafka服务
kafka-server-stop.sh 停止kafka服务
kafka-simple-consumer-shell.sh deprecated,推荐使用kafka-console-consumer.sh
kafka-streams-application-reset.sh todo
kafka-topics.sh topic管理脚本
kafka-verifiable-consumer.sh 可检验的kafka消费者
kafka-verifiable-producer.sh 可检验的kafka生产者
trogdor.sh todo
zookeeper-security-migration.sh todo
zookeeper-server-start.sh 启动zk服务
zookeeper-server-stop.sh 停止zk服务
zookeeper-shell.sh zk客户端

接下来详细说明每个脚本的使用方法。

  • connect-distributed.sh&connect-standalone.sh

Kafka Connect是在0.9以后加入的功能,主要是用来将其他系统的数据导入到Kafka,然后再将Kafka中的数据导出到另外的系统。可以用来做实时数据同步的ETL,数据实时分析处理等。
主要有2种模式:Standalone(单机模式)和Distribute(分布式模式)。
单机主要用来开发,测试,分布式的用于生产环境。
用法比较复杂,建议参考:Kafka Connect教程详解 https://3gods.com/bigdata/Kafka-Connect-Details.html

  • kafka-broker-api-versions.sh

用法:bin/kafka-broker-api-versions.sh –bootstrap-server 10.0.55.229:9092,10.0.55.229:9093,10.0.55.229:9094

  • kafka-configs.sh

配置管理脚本,这个脚本主要分两类用法:describe和alter。
describe相关用法:
查看每个topic的配置:bin/kafka-configs.sh –zookeeper localhost:2181 –describe –entity-type topics
部分结果如下:

Configs for topic 'afei' are 
Configs for topic 'TOPIC-TEST-AFEI' are retention.ms=600000 
Configs for topic '__consumer_offsets' are segment.bytes=104857600,cleanup.policy=compact,compression.type=producer

查看broker的配置:bin/kafka-configs.sh –bootstrap-server localhost:9092 –describe –entity-type brokers –entity-name 0

说明:0是broker.id,因为entity-type为brokers,所以entity-name表示broker.id。

alter相关用法:
给指定topic增加配置:bin/kafka-configs.sh –zookeeper localhost:2181 –alter –entity-type topics –entity-name TOPIC-TEST-AFEI –add-config retention.ms=600000
给指定topic删除配置:bin/kafka-configs.sh –zookeeper localhost:2181 –alter –entity-type topics –entity-name TOPIC-TEST-AFEI –delete-config max.message.bytes

通过该脚本可以管理的属性,可以通过执行bin/kafka-configs.sh得到的输出中--add-config的desc可以得到。

  • kafka-broker-api-versions.sh

用法:bin/kafka-broker-api-versions.sh –bootstrap-server localhost:9092

  • kafka-console-consumer.sh

用法:bin/kafka-console-consumer.sh –bootstrap-server localhost:9092 –topic afei [–group groupName] [–partition 目标分区]

这个命令后面还可带很多参数:
--key-deserializer:指定key的反序列化方式,默认是 org.apache.kafka.common.serialization.StringDeserializer
--value-deserializer:指定value的反序列化方式,默认是 org.apache.kafka.common.serialization.StringDeserializer
--from-beginning:从最早的消息开始消费,默认是从最新消息开始消费。
--offset: 从指定的消息位置开始消费,如果设置了这个参数,还需要带上--partition。否则会提示:The partition is required when offset is specified.
--timeout-ms:当消费者在这个参数指定时间间隔内没有收到消息就会推出,并抛出异常:kafka.consumer.ConsumerTimeoutException。
--whitelist:接收的topic白名单集合,和--topic二者取其一。例如:--whitelist "afei.*"(以afei开头的topic),--whitelist "afei"(指定afei这个topic),"afei|fly"(指定afei或者fly这两个topic)。另外一个参数--blacklist用法类似。

  • kafka-console-producer.sh

用法:bin/kafka-console-producer.sh –broker-list localhost:9092 –topic afei
,如果连接集群,那么broker-list参数格式为:HOST1:PORT1,HOST2:PORT2,HOST3:PORT3

这个命令后面还可带很多参数:
--key-serializer:指定key的序列化方式,默认是 org.apache.kafka.common.serialization.StringSerializer
--value-serializer:指定value的序列化方式,默认是 org.apache.kafka.common.serialization.StringSerializer

  • kafka-consumer-groups.sh

查看所有消费者组:bin/kafka-consumer-groups.sh –bootstrap-server localhost:9092 –list
查看某个消费者组:bin/kafka-consumer-groups.sh –bootstrap-server localhost:9092 –group AfeiGroup –describe,输出结果如下:

Note: This will not show information about old Zookeeper-based consumers.

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                     HOST            CLIENT-ID
afei            0          8               8               0               consumer-1-7a46c647-8221-4aca-b6bf-ed14571fb0f1 /172.18.36.203  consumer-1
afei            4          10              10              0               consumer-1-7a46c647-8221-4aca-b6bf-ed14571fb0f1 /172.18.36.203  consumer-1
afei            1          8               8               0               consumer-1-7a46c647-8221-4aca
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值