最近利用flink使用一个流式SQL处理平台,利用kafka, mysql, hive等组件比较多,命令行突然间需要操作一次记不住命令很麻烦,索性直接整理成笔记。

在 0.9.0.0 之后的 Kafka,出现了几个新变动,一个是在 Server 端增加了 GroupCoordinator 这个角色,另一个较大的变动是将 topic 的 offset 信息由之前存储在 zookeeper 上改为存储到一个特殊的 topic(__consumer_offsets)中。

启动 Kafka

后台常驻方式,带上参数 -daemon,如:

bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

指定 JMX port 端口启动,指定 jmx,可以方便监控 Kafka 集群

JMX_PORT=9991 bin/kafka-server-start.sh -daemon ./config/server.properties

停止 Kafka

bin/kafka-server-stop.sh

Topic

bin/kafka-topics.sh --zookeeper ZOOKEEPER_HOST1:PORT1,ZOOKEEPER_HOST2:PORT2 --create --replication-factor REPLICA_NUM --partitions PARTITION_NUM --topic TOPIC_NAME

创建 Topic

参数 --topic 指定 Topic 名,--partitions 指定分区数,--replication-factor 指定副本数:

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

注意,如果配置文件 server.properties 指定了 Kafka 在 zookeeper 上的目录,则参数也要指定,否则会报无可用的 brokers(下面部分命令也有同样的情况),如:

bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test

partions: kafka通过分区策略,将不同的分区分配到一个集群中的broker上,然后消息会通过负载均衡发不到不同的分区上,consumer会监测偏移量来获取哪个分区有新数据,从而从该分区上拉取消费,分区数越多,在一定程度上会提升消息处理的吞吐量,但因为kafka是基于文件进行读写,因此也需要打开更多的文件句柄,也会增加一定的性能开销。分区可以根据消费者数量定义,通常为消费者个数*配置项中的线程数.
replication-factor:用来设置主题的副本数。每个主题可以有多个副本,副本位于集群中不同的broker上,也就是说副本的数量不能超过broker的数量,否则创建主题时会失败。

列出所有 Topic

bin/kafka-topics.sh --list --zookeeper localhost:2181

查看 Topic

bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test

增加 Topic 的 partition 数

bin/kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic test --partitions 5

查看topic的状态和分区负载详情

bin/kafka-topics.sh --zookeeper ZOOKEEPER_HOST1:PORT1,ZOOKEEPER_HOST2:PORT2 --describe --topic TOPIC_NAME

如果发现以下现象说明kafka异常:
某个topic的每个分区,同步副本数量和设定的副本数量不一致;
某个topic的每个分区,leader的id数值是-1或者none;

查看 topic 指定分区 offset 的最大值或最小值

time 为 -1 时表示最大值,为 -2 时表示最小值:

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test --time -1 --broker-list 127.0.0.1:9092 --partitions 0

查询topic的offset的范围

查询offset最小值

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list slave6:9092 -topic videoplay --time -2

查询offset最大值

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list slave6:9092 -topic videoplay --time -1

重置消费者offset

bin/kafka-consumer-groups.sh --bootstrap-server BORKER_HOST1:PORT1,BORKER_HSOT2:PORT2 --group GROUP_NAME  --reset-offsets --execute --to-offset NEW_OFFSET --topic TOPIC_NAME
bin/kafka-consumer-groups.sh --bootstrap-server BORKER_HOST1:PORT1,BORKER_HSOT2:PORT2 --group GROUP_NAME  --reset-offsets --execute --to-earliest/--to-latest --topic TOPIC_NAME

删除 Topic

bin/kafka-topics.sh --zookeeper localhost:2181 --topic test --delete

删除topic下的数据

bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test_topic --config cleanup.policy=delete

给指定TOPIC设置消息存储时间 – 针对数据量大,磁盘小的情况

查看某一个topic设置过期时间

259200000 – 72 小时
86400000 – 24 小时
43200000 – 12 小时
28800000 – 8 小时
10800000 – 3 小时

bin/kafka-configs.sh --zookeeper localhost:2181 --describe --entity-name test_topic --entity-type topics
单独对某一个topic设置过期时间(下列两条命令都可用)
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --entity-name test_topic --entity-type topics --add-config retention.ms=86400000
bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name test_topic --alter --add-config retention.ms=259200000

生产消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

消费消息

从头开始

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

从尾部开始

从尾部开始取数据,必需要指定分区:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0

指定分区

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0

取指定个数

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0 --max-messages 1

消费者 Group

消费指定 Group

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test -group test_group --from-beginning

消费者 Group 列表

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

查看消费group状态和消费详情

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --describe

输出:

Consumer group 'test_group' has no active members.TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
test            0          5               5               0               -               -               -# CURRENT-OFFSET: 当前消费者群组最近提交的 offset,也就是消费者分区里读取的当前位置
# LOG-END-OFFSET: 当前最高水位偏移量,也就是最近一个读取消息的偏移量,同时也是最近一个提交到集群的偏移量
# LAG:消费者的 CURRENT-OFFSET 与 broker 的 LOG-END-OFFSET 之间的差距

设置consumer group的offset

//启动zookeeper client
zookeeper/bin/zkCli.sh//通过下面命令设置consumer group:DynamicRangeGroup topic:DynamicRange partition:0的offset为1288:
set /consumers/DynamicRangeGroup/offsets/DynamicRange/0 1288// 或者:  注意如果你的kafka设置了zookeeper root,比如为/kafka,那么命令应该改为:
set /kafka/consumers/DynamicRangeGroup/offsets/DynamicRange/0 1288// 重启kafka zookeeper

删除 group 中的 Topic

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --topic test --delete

删除 Group

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --delete

平衡 leader

bin/kafka-preferred-replica-election.sh --bootstrap-server localhost:9092

自带压测工具

bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092

作者:yongxinz
链接:参考地址

Kafka常用命令合集
https://www.cnblogs.com/toutou/p/kafka_command.html

kafka 命令行 生产消费数据,查看偏移量,修改偏移量
https://blog.csdn.net/ispringmw/article/details/108834144
https://blog.csdn.net/qq_29116427/article/details/80206125

kafka命令行操作大全相关推荐

  1. kafka 命令行操作大全

    kafka 命令行操作大全 一.集群相关常用命令 二.topic相关常用命令 2.1 脚本&参数简介 2.2 举例 三.生产者命令行常用操作 3.1 脚本&参数简介 3.2 举例发送消 ...

  2. 【kafka】三、kafka命令行操作

    kafka命令行操作 kafka的相关操作命令脚本文件在bin目录下 查看所有的topic kafka-topics.sh --zookeeper hll1:2181 --list 或 kafka-t ...

  3. cmd中mysql的操作语句,mysql命令行操作大全 mysql命令行操作总结

    摘要 腾兴网为您分享:mysql命令行操作大全 mysql命令行操作总结,悦作业,英语字典,银万财富,小书亭等软件知识,以及webex,过租号,宁夏教育云,百货通,准妈妈课堂,京客隆网上超市,壁纸生成 ...

  4. 数据仓库 — 07_Kafka的安装与部署(Kafka命令行操作指令、Kafka集群群起脚本、压力测试、节点数量计算、hadoop_zookeeper_flume_kafka群起脚本、默认端口总结)

    文章目录 1 Kafka的安装与配置 2 Kafka命令行操作 2.1 查看当前服务器中的所有topic 2.2 创建topic 2.3 删除topic 2.4 发送消息 2.5 消费消息 2.6 查 ...

  5. 简单的kafka命令行操作

    目录 一.主题topic命令行操作 1.查看操作主题的命令参数 2.连接kafka地址,创建名为kaf的主题,指定分区和副本数量 3.查看所有主题的名称 4.查看主题的详细信息 5.修改主题(修改分区 ...

  6. mysql命令行操作大全_mysql命令行操作大全 mysql命令行操作总结

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 或者: mysql -u 用户名 -p // 回车后要求输入密码,密码不可见 1.连接本机MYSQL. 打开DOS窗口, ...

  7. mysql命令行操作大全

    Mysql安装目录 一.数据库目录 /var/lib/mysql/ 配置文件 /usr/share/mysql(mysql.server命令及配置文件) 相关命令 /usr/bin(mysqladmi ...

  8. kafka命令行操作

    [README] kafka集群 -- kafka集群 3台机器 centos201 192.168.163.201 centos202 192.168.163.202 centos203 192.1 ...

  9. Kafka 命令行操作

    1)查看当前服务器中的所有 topic bin/kafka-topics.sh --zookeeper backup01:2181 使用命令  bin/kafka-topics.sh --list  ...

最新文章

  1. MySQL排序原理与MySQL5.6案例分析【转】
  2. 如何通过代码连接SQL Server数据库
  3. 「它将改变一切」,AI「诺奖级」里程碑!DeepMind 破解蛋白质分子折叠问题
  4. 卷积神经网络新手指南之二
  5. 实现-驼峰和下划线的转换 工具类
  6. redis安装 linux步骤,【linux安装redis完整步骤】
  7. 正则不等于一个字符串_更正一个观念:“积食”不等于“吃多了”
  8. java八进制转十六进制_java-十进制、八进制、十六进制数互相转换
  9. 电脑模拟器哪个好_电脑系统杀毒软件哪个好测评
  10. SQLServer 联合查询
  11. mysql三高教程(二):2.7 如何约束数据
  12. 仿复制粘贴功能,长按弹出tips的实现
  13. 百科园c语言题库13164,C语言题库-编程
  14. 英语口语练习软件测试简历,软件测试工程师个人简历英文版
  15. java计算机毕业设计论文评审系统源码+系统+mysql数据库+lw文档
  16. python3输入列表_[Python3] 列表的基本用法[TZZ]
  17. 素质的冰山模型,成就动机 笔记
  18. 外贸网站 | 在NameCheap或NameSilo购买网站域名
  19. 超详细如何配置NAT
  20. [瑞萨RH850学习笔记]——RDC与旋转变压器

热门文章

  1. 情人节表白话像电影字幕一样呈现
  2. linux查看磁盘条带,Linux_LVM_详解_03 线性和条带
  3. 常用的开源MP3编解码器
  4. Python numpy 求均值 标准差 方差 及参数介绍
  5. 再获殊荣,鸿翼入选2021年新一代信息技术创新案例名单
  6. 华为首款鸿蒙平板发布,华为MatePad Pro发布!首款鸿蒙平板强势来袭
  7. [题解]Mail.Ru Cup 2018 Round 1 - C. Candies Distribution
  8. 相遇问题(图的dfs)
  9. 年终工作总结的一点感悟
  10. 学习JavaWeb的第四天(表单美化,表单与服务器连接,css初步了解)