kafka topic的基本操作
来源:互联网 发布:男士皮鞋品牌 知乎 编辑:程序博客网 时间:2024/06/04 00:26
转载自
创建kafka topic
bin/kafka-topics.sh --zookeeper node01:2181 --create --topic t_cdr --partitions 30 --replication-factor 2
注: partitions指定topic分区数,replication-factor指定topic每个分区的副本数
- partitions分区数:
- partitions :分区数,控制topic将分片成多少个log。可以显示指定,如果不指定则会使用broker(server.properties)中的num.partitions配置的数量
- 虽然增加分区数可以提供kafka集群的吞吐量、但是过多的分区数或者或是单台服务器上的分区数过多,会增加不可用及延迟的风险。因为多的分区数,意味着需要打开更多的文件句柄、增加点到点的延时、增加客户端的内存消耗。
- 分区数也限制了consumer的并行度,即限制了并行consumer消息的线程数不能大于分区数
- 分区数也限制了producer发送消息是指定的分区。如创建topic时分区设置为1,producer发送消息时通过自定义的分区方法指定分区为2或以上的数都会出错的;这种情况可以通过alter –partitions 来增加分区数。
- replication-factor副本
- replication factor 控制消息保存在几个broker(服务器)上,一般情况下等于broker的个数。
- 如果没有在创建时显示指定或通过API向一个不存在的topic生产消息时会使用broker(server.properties)中的default.replication.factor配置的数量
查看所有topic列表
bin/kafka-topics.sh --zookeeper node01:2181 --list
查看指定topic信息
bin/kafka-topics.sh --zookeeper node01:2181 --describe --topic t_cdr
控制台向topic生产数据
bin/kafka-console-producer.sh --broker-list node86:9092 --topic t_cdr
控制台消费topic的数据
bin/kafka-console-consumer.sh --zookeeper node01:2181 --topic t_cdr --from-beginning
查看topic某分区偏移量最大(小)值
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic hive-mdatabase-hostsltable --time -1 --broker-list node86:9092 --partitions 0
注: time为-1时表示最大值,time为-2时表示最小值
增加topic分区数
为topic t_cdr 增加10个分区
bin/kafka-topics.sh --zookeeper node01:2181 --alter --topic t_cdr --partitions 10
删除topic,慎用,只会删除zookeeper中的元数据,消息文件须手动删除
bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper node01:2181 --topic t_cdr
查看topic消费进度
这个会显示出consumer group的offset情况, 必须参数为--group, 不指定--topic,默认为所有topic
Displays the: Consumer Group, Topic, Partitions, Offset, logSize, Lag, Owner for the specified set of Topics and Consumer Group
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetCheckerrequired argument: [group] Option Description ------ ----------- --broker-info Print broker info --group Consumer group. --help Print this message. --topic Comma-separated list of consumer topics (all topics if absent). --zkconnect ZooKeeper connect string. (default: localhost:2181)Example,bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group pvGroup Topic Pid Offset logSize Lag Owner pv page_visits 0 21 21 0 none pv page_visits 1 19 19 0 none pv page_visits 2 20 20 0 none
二、Kafka消息日志清除
操作步骤主要包括:
1、停止Kafka运行;
2、删除Kafka消息日志;
3、修改ZK的偏移量;
4、重启Kafka;
上述步骤重点介绍其中的关键步骤。
在进行第2步:删除Kafka消息日志时,进入Kafka消息日志路径下,使用du -sh * 检查磁盘占用比较大的目录,然后删除此目录;
在进行第3步:修改ZK的偏移量时,进入ZK的安装目录下,运行./zkCli.sh -server (中间以,分割),如果不带server默认修改的为本机。
示例如下:
A.运行./zkCli.sh -server AAA:2181,BBB:2181,CCC:2181
B.在ZK上运行ls /consumers/对应的分组/offset/对应的topic,就可以看到此topic下的所有分区了;
通过get /consumers/对应的分组/offset/对应的topic/对应的分区号,可以查询到该分区上记录的offset;
通过set /consumers/对应的分组/offset/对应的topic/对应的分区号 修改后的值(一般为0),即可完成对offset的修改;
三、重建Topic
操作步骤主要包括如下:
1、删除Topic;
2、删除log日志;
3、删除ZK中的Topic记录
第一步:删除Topic
运行./kafka-topics.sh -delete -zookeeper [zookeeper server] -topic [topic name];如果kafka启动时加载的配置文件server.properties没有配置delete.topic.enable = true,那么此时的删除并不是真正的删除。而只是把topic标记为:marked for deletion,此时就需要执行第3步的操作;
第三步:删除ZK中的Topic记录
示例如下:
A.运行./zkCli.sh -server AAA:2181,BBB:2181,CCC:2181
B.进入/admin/delete_topics目录下,找到删除的topic,删除对应的信息。
四、常用命令
A.查看Kafka中的消息
12./kafka-run-
class
.sh kafka.tools.DumpLogSegments -print-data-log -files /data01/middle/kafka-logs/00000002154.log >>aa.txt
find /dataa01 -mtime 0 -name *.log |xargs /kafka-run-
class
.sh kafka.tools.DumpLogSegments -print-data-log -files /data01/middle/kafka-logs/00000002154.log >>aa.txt
0代表当天;-1代表昨天
- kafka topic的基本操作
- Kafka的Topic操作
- 删除kafka 的topic
- 删除kafka的topic
- Kafka Java API操作topic
- Kafka Java API操作topic
- Kafka Java API操作topic
- Kafka 学习 -- Topic的创建
- Kafka的topic限制是多少
- 如何删除Kafka的Topic
- Kafka 彻底删除 topic 操作命令流程
- kafka topic
- Kafka Shell基本命令(包括topic的增删改查)
- kafka修改topic分区的位置
- Kafka动态增加Topic的副本(Replication)
- 彻底删除kafka的topic方法
- kafka增加topic 的partitions数量
- 彻底删除kafka的topic方法
- [android-wifi](7.1)漫游部分逻辑
- 1006.Funny Function
- oracale to_char用法
- Vue中用到jeDate日期控件,Vue对象中的值滞后,总是滞后当前选择的值
- 17.7.26离线赛比赛总结
- kafka topic的基本操作
- 原型-原型链-继承
- SpringMVC 使用@ResponseBody返回json 中文乱码
- malloc,ralloc,calloc工作原理及其区别
- blast2go下载和本地安装
- Eclipse Debug 界面应用详解——Eclipse Debug不为人知的秘密
- Gurobi获得变量的值
- 内存中的堆和栈的区别和存储内容
- 1.7算法