1. 创建topic

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

返回结果:Created topic "topic-create".

参数解析

--zookeeper 指定kafka所连接的zookeeper服务地址

--topic 指定所要创建主题的名称

--replicator-factor 指定了副本因子(即副本数量)

--partitions 指定分区个数

--create 是创建主题的的动作指令

2. 展示主题的更多具体信息

bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe --topic topic-create

输出结果:

Topic:topic-create    PartitionCount:4    ReplicationFactor:2    Configs:
    Topic: topic-create    Partition: 0    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063
    Topic: topic-create    Partition: 1    Leader: 1063    Replicas: 1063,1064    Isr: 1063,1064
    Topic: topic-create    Partition: 2    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063
    Topic: topic-create    Partition: 3    Leader: 1063    Replicas: 1063,1064    Isr: 1063,1064

结果解释:
Topic:topic名字, PartitionCount:分区个数,ReplicationFactor:副本因子,Configs: 表示创建或修改主题时指定的参数配置;

Topic和Partition分表表示主题名称和分区号。Leader表示分区的Leader副本所对应的brokerID,Isr表示分区的ISR集合,Replicas表示分区的所有的副本分配情况,即AR集合,其中的数字都表示的是brokerID。

备注: kafka-topics.sh命令还有一些其他的参数,比如:

create topic时,--replica-assigment参数,来手动指定分区副本的分配方案。if-not-exists参数,在发生命名冲突时候,就不做任何处理(即不创建主题,也不报错),如果没发生命名冲突,就正常创建,如果不带这个参数,如果有命名冲突就会报TopicExistsException的异常信息。

describe topic时,

--under-repicated-partitions参数可以找出所有包含失效副本的分区。

--unavailable-partitions 可以查看主题中没有leader副本的分区,这些分区已经处于离线状态,对于外界的生产者和消费者来说处于不可用状态。

--topics-with-overrides 可以找出所有包含覆盖配置的主题,它只会列出包含了与集群不一样配置的主题,使用此参数只显示原本只有describe指令的第一行信息。

3. 查看主题

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

4. 修改主题   

bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-create --partitions 5

修改topic名为 topic-create 的分区数,由4变成5

修改前

Topic:topic-create    PartitionCount:4    ReplicationFactor:2    Configs:
    Topic: topic-create    Partition: 0    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063
    Topic: topic-create    Partition: 1    Leader: 1063    Replicas: 1063,1064    Isr: 1063,1064
    Topic: topic-create    Partition: 2    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063
    Topic: topic-create    Partition: 3    Leader: 1063    Replicas: 1063,1064    Isr: 1063,1064

修改后

Topic:topic-create    PartitionCount:5    ReplicationFactor:2    Configs:
    Topic: topic-create    Partition: 0    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063
    Topic: topic-create    Partition: 1    Leader: 1063    Replicas: 1063,1064    Isr: 1063,1064
    Topic: topic-create    Partition: 2    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063
    Topic: topic-create    Partition: 3    Leader: 1063    Replicas: 1063,1064    Isr: 1063,1064
    Topic: topic-create    Partition: 4    Leader: 1064    Replicas: 1064,1063    Isr: 1064,1063

备注:目前kafka只支持增加分区数而不支持减少分区数,如果减少的话。会报出InvalidPartitionsException的异常。

修改主题时,可以配置if-extists参数来忽略异常。如果不指定该参数,修改一个不存在的分区,会报出错误信息“Topic topic-name does not exsit”

在创建完主题之后,我们还可以通过alter指令配合config参数增加或修改一些配置以覆盖他们配置原有的值。比如将主题topic-config的max.message.bytes配置值从10000修改为2000。

# 修改前查看
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe --topic topic-config
# 修改
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-config --config max.message.bytes=2000
# 修改后查看
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe --topic topic-config 

删除之前的配置

bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-config --delete-config segment.bytes

在变更(增删改)配置的操作执行之后都会提示一段告警信息,指明了使用kafka-topic.sh脚本的alter指令会变更主题配置的功能已经过时(deprecated),将在未来的版本中删除,并且使用kafka-config.sh脚本来实现相关功能。

5. 删除主题

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

Topic topic-create is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

备注: 如果要删除的主题是kafka内部主题,那么删除是就会报错。如__consumer_offsets 和__transaction_state

尝试删除一个不存在的主题也会报错。可以加上if-exists来规避。

使用kafka-topics.sh脚本删除主题的行为本质上只是在zookeeper中的/admin/delete_topics路径下创建一个与待删除主题同名的节点,以此标记该主题为待删除的状态。与创建主题相同的是,真正删除主题的动作也是有kafka的控制器负责完成的。

删除主题是不可逆的操作。一旦删除之后,与其相关的所有消息数据会被全部删除。所以在执行这一操作的时候也要三思而后行。

kafka-topics.sh脚本中的参数
参数名称 释义
alter 用于修改主题,包括分区数及主题的配置
config <键值对> 创建或修改主题时,用于设置主题级别的参数
create 创建主题
delete 删除主题
delete-config <配置名称> 删除主题级别被覆盖的配置
describe 查看主题的详细信息
disable-rack-aware 创建主题时不考虑机架信息
help 打印帮助信息
if-exists 修改或删除主题时使用,只有当主题存在时才会执行操作
if-not-exists 创建主题时使用,只有主题不存在时才会执行动作
list 列出所有可用的主题
partitions <分区数> 创建主题或增加分区时指定分区数
replica-assignment <分配方案> 手工指定分区副本分配方案
replication-factor <副本数> 创建主题时指定副本因子
topic <主题名称> 指定主题名称
topics-with-overrides 使用describe查看主题信息时,只展示包含覆盖配置的主题
unavailable-partitions 使用describe查看主题信息时,只展示包含没有leader副本的分区
under-replicated-partitions 使用describe查看主题信息时,只展示包含失效副本的分区
zookeeper 指定连接的zookeeper地址信息(必填项)

读书笔记-kafka常用操作命令-kafka-topics.sh相关推荐

  1. 《统计学习方法》读书笔记——机器学习常用评价指标

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

  2. 《 第一本Docker书 》读书笔记 --- Docker 各项操作命令及参数说明(docker run 命令各个参数说明)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. PS :个人所有读书笔记只记录个人想要的内容,很可能原书大量内容没有纳入笔记中... ... 1. ...

  3. Kafka常用命令之kafka-console-consumer.sh

    ./kafka-console-consumer.sh --bootstrap-server localhost:2181 --topic testTopic --from-beginning注意:K ...

  4. Kafka常用操作命令总结

    参考:https://www.t9vg.com/archives/438 转载于:https://www.cnblogs.com/fanta2000/p/11161855.html

  5. Kafka常用命令之kafka-topics.sh

    转载:https://blog.csdn.net/qq_29116427/article/details/80202392

  6. Kafka学习之四 Kafka常用命令

    2019独角兽企业重金招聘Python工程师标准>>> Kafka学习之四 Kafka常用命令 Kafka常用命令 以下是kafka常用命令行总结: 1.查看topic的详细信息 . ...

  7. Kafka常用命令行命令

    文章目录 Kafka常用命令 kafka的基本操作(命令行操作) 1.启动集群: 2.查看当前服务器中的所有topic(在kafka目录下) 3.创建主题topic(在kafka目录下) 4.删除to ...

  8. 《统计学习方法》读书笔记——朴素贝叶斯法(公式推导+代码实现)

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

  9. 《统计学习方法》读书笔记——K近邻法(原理+代码实现)

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

最新文章

  1. TensorFlow(3)张量与变量
  2. mybatis =或这个=提示错误Tag name expecte问题解决
  3. 使用py2exe打包python脚本为exe可执行程序
  4. C指针原理(13)-C指针基础
  5. 简单易懂的 pwnable.kr 第六题[random]Writeupt
  6. ctr 平滑_CTR平滑的原理,包懂!!!附代码
  7. pycharm中如何调用Anoconda的库
  8. [计算机网络][总结][常见问题][TCP][三次握手][四次挥手]
  9. Laravel 大将之 路由 模块
  10. UITextView(文本视图) 学习之初体验
  11. 权威!盘点 100 个最受欢迎的 Java 库!绝对经典
  12. java并发编程实战读书笔记2
  13. 创建jenkins任务
  14. 【Ubuntu和本地电脑互传文件】
  15. 三菱MDS-D-SVJ3-10/20/10NA/20NA伺服驱动器
  16. win7 计算机 局域网共享,局域网共享设置,教您win7如何设置局域网共享
  17. 复数值神经网络matlab,学界 | Yoshua Bengio等提出深度复数网络:用复数构建深度神经网络(已开源)...
  18. 微信小程序wxml如何判断字符串中汉语某字符_微信小程序开发经典案例解析“嗨兔儿”...
  19. 裁员潮,带给我的思考
  20. The security economics of large-scale attacks against Internet-connected ICS devices

热门文章

  1. 大连八中学2021年高考成绩查询,2021年大连各高中高考成绩排名及放榜最新消息...
  2. 微信步数-小米运动步数霸榜教程
  3. Java Fork/Join与协程
  4. iPhone像素点和常用控件尺寸
  5. 苹果审核-(三)—— 苹果公司联系邮箱大全
  6. #64 Abstract Interpretation: Introduction #66 Galois Connections - 课程笔记
  7. 《GTD I》读书笔记
  8. 如何将mp4视频压缩变小,视频压缩快速完成
  9. 下着雨的星期天下午,年素清一个人走在外面
  10. 微信小程序之个人中心静态页面