专栏首页数据社kafka实战宝典:手动修改消费偏移量的两种方式

kafka实战宝典:手动修改消费偏移量的两种方式

kafka实战宝典:手动修改消费偏移量的两种方式

工作中遇到过消费端报错的问题:包括数据Invalid Message和Failed_to_UNcompress等报错信息,导致消费端的iterator损坏,直接造成消费进程挂掉,如果不能及时发现问题,需要手动跳过某些数据;

Kafka的偏移量的保存方式根据版本号的异同有3种方式:保存在zookeeper中、保存在kafka的topic(_consumer_offset)中、保存在自定义的存储系统中,下面介绍前2种修改方式。

1、修改保存在zookeeper中的偏移量:

使用./zkCli.sh -server xxxx:2181 进入zk命令行模式,get对应的消费组的对应分区的偏移量,使用set方法指定偏移量;

2、修改保存在kafka的topic内的偏移量:

使用Kafka自带的kafka-consumer-groups.sh脚本设置消费者组(consumer group)的位移, 这是0.11.0.0版本提供的新功能且只适用于新版本consumer, 在新版本之前,如果要为已有的consumer group调整位移必须要手动编写Java程序调用KafkaConsumer#seek方法。

0.11.0.0版本丰富了kafka-consumer-groups脚本的功能,用户可以直接使用该脚本很方便地为已有的consumer group重新设置位移,但前提必须是consumer group必须是inactive的,即不能是处于正在工作中的状态。

① 确定topic作用域(支持3种作用域指定方式)

--all-topics:为consumer group下所有topic的所有分区调整位移
--topic t1 --topic t2:为指定的若干个topic的所有分区调整位移
--topic t1:0,1,2:为指定的topic分区调整位移

② 确定位移重设策略(当前支持8种设置规则):

--to-earliest:把位移调整到分区当前最小位移
--to-latest:把位移调整到分区当前最新位移
--to-current:把位移调整到分区当前位移
--to-offset <offset>:把位移调整到指定位移处
--shift-by N:把位移调整到当前位移 + N处,注意N可以是负数,表示向前移动
--to-datetime <datetime>:把位移调整到大于给定时间的最早位移处,datetime格式是yyyy-MM-ddTHH:mm:ss.xxx,比如2017-08-04T00:00:00.000
--by-duration <duration>:把位移调整到距离当前时间指定间隔的位移处,duration格式是PnDTnHnMnS,比如PT0H5M0S
--from-file <file>:从CSV文件中读取调整策略

③ 确定执行策略(当前支持3种):

无参:只是打印出位移调整方案,不具体执行
--execute:执行真正的位移调整
--export:把位移调整方案按照CSV格式打印,方便用户成csv文件,供后续直接使用

上述使用方式中,一般通过shift-by N直接调整的使用场景最多,使用如下:

本文分享自微信公众号 - 数据社(DataClub),作者:yzg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive SQL使用过程中的奇怪现象|避坑指南

    hive是基于Hadoop的一个数据仓库工具,用来进行数据的ETL,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive能将结构化的数据...

    数据社
  • 如何入门数据分析?

    如果你刚开始学习数据分析,那么怎么入门呢?其实各大招聘网站的数据分析职位就是一个很好的参考。那么数据分析师究竟需要哪些技能呢?

    数据社
  • 数据和业务的关系是什么?

    数据和业务的关系,没有固定形态,就如兵无常势、水无常形。这和公司大boss的风格、业务boss的风格、数据boss的风格、公司组织架构紧密相关。

    数据社
  • Wasserstein距离

    Π(P1,P2)是P1和P2分布组合起来的所有可能的联合分布的集合。对于每一个可能的联合分布γ,可以从中采样(x,y)∼γ得到一个样本x和y,并计算出这对样本的...

    于小勇
  • 教你优雅地解密HTTPS流量

    Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全堡垒土崩瓦解。拿 HTTPS 来说,它的「内容加密、数据完整性、身份认证」三大安全保证,也会受到非法根...

    黄泽杰
  • Python动态绑定属性slots的使用

    当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。废话不多说,我们看一个例子:

    py3study
  • 人工智能设计师之“模仿”能力

    今天更新一篇文章,往期《人工智能设计师系列》,可查阅: 人工智能设计师之智能排版的另一种实现方式 电影封面海报个性化推荐+人工智能设计师 聊聊人工智能建筑师 人...

    mixlab
  • 芋道 Spring Boot API 接口文档 Swagger 入门

    目前,大多数系统都采用前后端分离。在享受前后端分离的好处的同时,接口联调往往成为团队效率的瓶颈,甚至产生前后端的矛盾。简单归结来说,有几方面的原因:

    芋道源码
  • 【剑指Offer】43. 从 1 到 n 整数中 1 出现的次数

    思路是分别计算个位、十位、百位…上出现 1 的个数。 以 n =216为例: 个位上: 1 ,11,21,31,…211。个位上共出现(216/10)+ 1...

    瑞新
  • 「R」R传统图形绘制多图

    mfrow 和 mfcol 都由 2 个数字指定,一个表示行数、一个表示列数。如果使用 mfrow,那么图像区域会被按行依次使用;如果使用 mfcol,那么图像...

    王诗翔呀

扫码关注云+社区

领取腾讯云代金券