大数据_Kafka_Kafka的Topic常用命令
来源:互联网 发布:淘宝 自带 库存管理 编辑:程序博客网 时间:2024/06/04 18:57
本文着重介绍几个常用的topic命令行命令,包括listTopic,createTopic,deleteTopic和describeTopic等。由于alterTopic并不是很常用,本文中就不涉及了。另外本文的代码分析是基于kafka_2.10-0.8.2.1的(虽然截图是Kafka 0.8.1的^_^ )
一. list topic 显示所有topic
1. 从zookeeper的/brokers/topics节点下获取所有topic封装成topic集合
2. 遍历该集合,查看每个topic是否是待删除topic——即在/admin/delete_topics下是否存在同名节点。如果是,打印topic已经被标记为删除;否则直接打印topic名称
二、create topic 创建topic
bin/kafka-topics.sh --create --zookeeper 10.200.250.194:2181,10.200.250.195:2181,10.200.250.196:2181 --replication-factor 1 --partitions 1 --topic test
1. 从命令行中获取要创建的topic名称
2. 解析命令行指定的topic配置(如果存在的话),配置都是x=a的格式
3. 若指定了replica-assignment参数表明用户想要自己分配分区副本与broker的映射——通常都不这么做,如果不提供该参数Kafka帮你做这件事情
4. 检查必要的参数是否已指定,包括:zookeeper, replication-factor,partition和topic
5. 获取/brokers/ids下所有broker并按照broker id进行升序排序
6. 在broker上分配各个分区的副本映射 (没有指定replica-assignment参数,这也是默认的情况)
7. 检查topic名字合法性、自定义配置的合法性,并且要保证每个分区都必须有相同的副本数
8. 若zookeeper上已有对应的路径存在,直接抛出异常表示该topic已经存在
9. 确保某个分区的多个副本不会被分配到同一个broker
10. 若提供了自定义的配置,更新zookeeper的/config/topics/[topic]节点的数据
11. 创建/brokers/topics/[topic]节点,并将分区副本分配映射数据写入该节点
三、delete topic 删除topic
kafka-serkafka-topics.sh --zookeeper 10.200.250.194:2181,10.200.250.195:2181,10.200.250.196:2181 --delete --topic "clicki_info_topic"
1. 获取待删除的topic,如果没有指定--topic就是删除所有的topic
2. 对于每个要删除的topic,在zookeeper上的/admin/delete_topics下创建对应的子节点。kafka目前的删除topic逻辑只是在Zookeeper上标记而已,会有专门的线程负责监听该路径下的变更并负责更新zookeeper上其他节点上的数据,但底层的日志文件目前还是需要手动删除。
四、describe topic 显示topic详细信息
kafka-topics.sh --zookeeper 10.200.250.196:2181 --topic "clicki_track_topic" --describe
kafka-topics.sh --zookeeper 10.200.250.194:2181,10.200.250.195:2181,10.200.250.196:2181 --describe
1. 上图可见,如果指定了--topic就是只显示给定topic的信息,否则显示所有topic的详细信息。
2. 如果指定了under-replicated-partitions,那么就显示那些副本数量不足的分区(ISR size < AR.size)
3. 如果指定了unavailable-partitions,那么就显示那些leader副本已不可用的分区
4. 从zookeeper上获取当前所有可用的broker
5. 遍历每个要describe的topic,
6. 获取这个topic的分区副本分配信息,若该信息不存在说明topic不存在
7. 否则将分配信息按照分区号进行排序
10. 如果没有指定步骤2中的参数也没有指定步骤3中的参数,那么显示分区数信息、副本系数信息以及配置信息
11. 默认情况下还会显示各个分区的信息
12. 从zookeeper中获取每个分区的ISR、Leader、AR信息并显示
0 0
- 大数据_Kafka_Kafka的Topic常用命令
- 大数据_Kafka_Kafka的重要配置总结
- 大数据_Kafka_Kafka的控制台 生产者 / 消费者
- 大数据_Kafka_Kafka入门教程
- 大数据_Kafka_Kafka的常用指令 与 集群维护
- 大数据_Kafka_kafka.common.ConsumerRebalanceFailedException异常解决办法
- 大数据_Kafka_Kafka自动创建不存在的Topics / 删除已存在的Topics
- 大数据_Kafka_kafka客户端访问broker报错的应对方法
- 读取zookeeper保存的topic元数据
- 柯南君:看大数据时代下的IT架构(8)消息队列之RabbitMQ--案例(topic起航)
- MySQL数据常用命令大集合
- MySQL数据常用命令大集合
- hadoop 大数据学习常用命令
- 把kafka中topic的数据上传到hdfs
- topic model 的总结
- 删除kafka 的topic
- Kafka的Topic操作
- 删除kafka的topic
- 92. Reverse Linked List II
- Android让用户选择打开自定义浏览器
- .NET的入门到精通
- ios 滤镜
- Struts2拦截器介绍及说明
- 大数据_Kafka_Kafka的Topic常用命令
- [Struts2官方指南的个人学习和翻译] Struts2自带例子MailReader的学习
- 位操作求余数
- CISSP笔记04
- 2.Trailing Zeros-尾部的零(容易题)
- android关于在根节点设置软键盘状态的属性
- listview中设置CheckBox引起的混乱问题
- 使用nexus搭建Maven私服
- 【HDU 3072】【通讯】【强连通分量】