Bigdata-如何手动更新Kafka中某个Topic的偏移量

Posted by Yancy on 2017-06-29

如何手动更新Kafka中某个Topic的偏移量

我们都知道,Kafka topic的偏移量一般都是存储在Zookeeper中,具体的路径为/consumers/[groupId]/offsets/[topic]/[partitionId],比如iteblog主题分区10的偏移量获取如下:
在有些场景下,这个工具不满足我们的需求,我们需要的是能够手动设置分区的偏移量为任何有意义的值,而不仅仅是earliest或者latest。那咋办?

我们都知道,Kafka topic的偏移量一般都是存储在Zookeeper中,具体的路径为/consumers/[groupId]/offsets/[topic]/[partitionId],比如mongotail_lz4主题分区10的偏移量获取如下:   

1
2
3
4
5
6
7
8
9
10
11
12
13
[zk: 127.0.0.1:2281(CONNECTED) 2] get /consumers/ibm_event/offsets/mongotail_lz4/10
293894
cZxid = 0x6000011f3
ctime = Wed Jul 26 17:57:27 CST 2017
mZxid = 0x6000018c9
mtime = Wed Jul 26 18:18:27 CST 2017
pZxid = 0x6000011f3
cversion = 0
dataVersion = 20
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

所以,我们可以通过set命令来设置某个分区的偏移量,如下;

1
2
3
4
5
6
7
8
9
10
11
12
13
[zk: 127.0.0.1:2281(CONNECT get /consumers/ibm_event/offsets/mongotail_lz4/10 0
0
cZxid = 0x6000011f3
ctime = Wed Jul 26 17:57:27 CST 2017
mZxid = 0x60000204c
mtime = Wed Jul 26 18:37:21 CST 2017
pZxid = 0x6000011f3
cversion = 0
dataVersion = 21
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

12个分区分别更新过去。

交流学习:

🐧 Linux shell_高级运维派: 459096184 圈子 (系统运维-应用运维-自动化运维-虚拟化技术研究欢迎加入)
🐧 BigData-Exchange School : 521621407 圈子(大数据运维)(Hadoop开发人员)(大数据研究爱好者) 欢迎加入

相应Bidata有内部微信交流群互相学习,加入QQ群有链接。