kafka命令行脚本使用

1. 先创建一个Topic

[root@server-1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.81.5:2181 --replication-factor 3 --partitions 2 --topic google 

  • --topic :主题名字
  • --partitions :分区数量
  • --replication-factor :副本因子

2. 查看一下建好的Topic

 [root@server-1 bin]# ./kafka-topics.sh --list --zookeeper 192.168.81.5:2181 

3. 查看主题详情 

使用--describe参数来查看主题的详情,通过--topic来指定想要查看的topic,不指定则显示所有的topic。

[root@server-1 bin]# ./kafka-topics.sh --zookeeper 192.168.81.5:2181 --describe --topic google 

4. 在建好的Topic下生产消息

[root@server-1 bin]# ./kafka-console-producer.sh --broker-list 192.168.81.5:9092 --topic google 

5. 消费指定Topic下的消息 

旧版本

[root@server-1 bin]# ./kafka-console-consumer.sh --zookeeper 192.168.81.5:2181 --topic google --from-beginning 

也可以指定消费者参数,如下 :

[root@server-1 bin]# ./kafka-console-consumer.sh --zookeeper 192.168.81.5:2181 --topic google --from-beginning --consumer-property group.id=test_group

  • --consumer-property可以指定消费者参数,如 group.id=test_group。多个参数可以用逗号隔开。  

新版本

[root@server-1 bin]# ./kafka-console-consumer.sh --bootstrap-server node-1:9092,node-2:9092,node-3:9092 --topic google 

  • --bootstrap-server 表示我们的kafak集群的地址,在旧版本中使用的是--zookeeper参数,两者至少使用一个
  • --from-beginning 表示我们从最开始的数据进行消费
  • --topic指定我们topic的名字

6.查看分组

旧版本

[root@server-1 bin]# ./kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list

新版本

[root@server-1 bin]# ./kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9292 --list

7.查看consumer分组详情(消费者组消费进度监控) 

kafka 在 0.9 版本之后,kafka的消费者组和offset信息就不存zookeeper了。

0.9 之前版本查看所有消费组:

1
2
3
4
5
6
7
8
./kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list

erro-info-group
console-consumer-64036
console-consumer-98298
logstash-new
console-consumer-89310
console-consumer-48800

新版本 0.9 版本之后查看所有消费组

1
2
3
4
kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --list 

group-info
group-nginxlog

显示某个消费组的消费详情(仅支持offset存储在zookeeper上的)

1
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group logstash-new

显示某个消费组的消费详情(支持0.9版本+)

1
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --describe --group group-info

输出说明:

8. 删除指定Topic

先list一下,然后删除:

[root@server-1 bin]# ./kafka-topics.sh --delete --zookeeper 192.168.81.5:2181 --topic google 

注意:需要在config目录下server.properties文件配置delete.topic.enable=true,否则无法删除

9. 吞吐量测试

生产者吞吐量测试

[root@server-1 bin]# ./kafka-producer-perf-test.sh --topic perf_single --num-records 100000 --record-size 200 --throughput -1 --producer-props bootstrap.servers=192.168.81.5:9092 acks=-1

  • --topic topic名称,本例为test_perf
  • --num-records 总共需要发送的消息数,本例为1000000
  • --record-size 每个记录的字节数,本例为3000
  • --throughput 每秒钟发送的记录数,本例为20000
  • --producer-props bootstrap.servers=192.168.81.5:9092 发送端的配置信息

消费者吞吐量测试

[root@server-1 bin]# ./kafka-consumer-perf-test.sh --topic perf --broker-list 192.168.81.5:9092 --messages 500000 --message-size 200

10. 查看topic当前消息数

[root@server-1 bin]# ./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.81.5:9092 --topic google --time -1

  • --time -1 表示最大位移

 [root@server-1 bin]# ./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.81.5:9092 --topic google --time -2

  • --time -2 表示最早位移

11.查询__consumer_offsets 

__consumer_offsets这个topic是kafka自己创建的

__consumer_offsets有50个分区,要查询指定的消费者组可以取hashCode再对50取余,即可得到对应的分区。

0.11.0.0版本之前

[root@server-1 bin]# ./kafka-simple-consumer-shell.sh --topic __consumer_offsets --partition 35 --broker-list 192.168.81.5:9092 --formatter 'kafka.coordinator.GroupMetadataManager$OffsetsMessageFormatter'

 0.11.0.0版本及之后

[root@server-1 bin]# ./kafka-simple-consumer-shell.sh --topic __consumer_offsets --partition 14 --broker-list 192.168.81.5:9092 --formatter 'kafka.coordinator.group.GroupMetadataManager$OffsetsMessageFormatter'

12.首选leader的选举

首选leader是指创建topic时选定的leader就是分区的首选leader,创建topic时会在broker之间均衡leader。

在kafka集群中,broker服务器难免会发生宕机或崩溃的情况。这种情况发生后,该broker上的leader副本变为不可用,kafka会将这些分区的leader转移到其它broker上。即使broker重启回来, 其上的副本也只能作为跟随者副本,不能对外提供服务。随着时间的增长,会导致leader的不均衡,集中在一小部分broker上。

可以通过kafka-preferred-replica-election.sh工具来手动触发首选的副本选举。

[root@server-1 bin]# ./kafka-preferred-replica-election.sh --zookeeper cluster101:2181

 

 

kafka介绍文档:https://www.kancloud.cn/nicefo71/kafka/1471597

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
} void EnterWorkingMode(void) { // TODO: Add code to enter working mode } void WriteAddrData(uint16_t addr,K 命令行操作包括以下几个方面: 1. 创建主题:使用 kafka-topics.sh 脚本创建主题 uint8_t data) { HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, EEPROM_BASE_ADDR + addr, data); } uint8,例如: ``` ./kafka-topics.sh --create --topic my-topic --zookeeper localhost:2181 --replication-factor 1 --partitions 1 ``` 2. 查看主题:使用 kafka-topics.sh 脚本查看主题信息,_t ReadAddrData(uint16_t addr) { return (*((uint8_t *) (EEPROM_BASE_ADDR + addr))); } void DetectB例如: ``` ./kafka-topics.sh --describe --topic my-topic --zookeeper localhost:2181 ``` 3. 生ottlePosition(uint16_t addr) { uint8_t AddrData = AddrList[addr]; uint8_t BottleDetect = HAL_GPIO产消息:使用 kafka-console-producer.sh 脚本生产消息,例如: ``` ./kafka-console-producer.sh --broker-list_ReadPin(BOTTLE_DETECT_GPIO_PORT, BOTTLE_DETECT_GPIO_PIN); if (BottleDetect == AddrData) { localhost:9092 --topic my-topic ``` 4. 消费消息:使用 kafka-console-consumer.sh 脚本消费消息, // Correct bottle position, blink LED 3 times for (uint8_t i = 0; i < 3; i++) 例如: ``` ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning ``` { HAL_GPIO_WritePin(LED_GPIO_PORT, LED_GPIO_PIN, GPIO_PIN_RESET); HAL_Delay(100); HAL_GPIO_Write5. 查看消费者组:使用 kafka-consumer-groups.sh 脚本查看消费者组信息,例如: ``` ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list ``` 6. 查看消费者组消费Pin(LED_GPIO_PORT, LED_GPIO_PIN, GPIO_PIN_SET); HAL_Delay(100); } } else { 情况:使用 kafka-consumer-groups.sh 脚本查看消费者组消费情况,例如: ``` ./kafka // Incorrect bottle position, blink LED 3 times for (uint8_t i = 0; i < 3; i++) { HAL_GPIO_WritePin(LED_GPIO_PORT, LED_GPIO_PIN, GPIO_PIN_RESET); HAL_Delay(500); HAL_GPIO_Write-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group ``` 以上是 Kafka 命令行操作的基本内容,使用时需要注意参数的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值