kafka-保姆级配置说明(consumer)

bootstrap.servers=
#deserializer应该与producer保持对应
#key.deserializer=
#value.deserializer=
##fetch请求返回时,至少获取的字节数,默认值为1
##当数据量不足时,客户端请求将会阻塞
##此值越大,客户端请求阻塞的时间越长,这取决于producer生产效率和网络传输能力
fetch.min.bytes=1
##如果broker端反馈的数据量不足时(fetch.min.bytes),fetch请求等待的最长时间
##如果数据量满足需要,则立即返回。
fetch.max.wait.ms=500
##标识consumer所属的group
##此属性非常重要,类似于JMS订阅者的clientId
##同一个group中的consumer互为排他、且可以负载均衡。
##即订阅topic的同一个group中,任何一个partition只能被一个consumer消费
group.id=
##consumer协调器与kafka集群之间,心跳检测的时间间隔
##kafka集群通过心跳判断consumer会话的活性,以判断consumer是否在线,如果离线则会把
##此consumer注册的partition分配(assign)给相同group的其他consumer。
##此值必须小于“session.timeout.ms”,即会话过期时间应该比心跳检测间隔要大,通常为session.timeout.ms的三分之一,否则心跳检测就失去意义。
heartbeat.interval.ms=3000
##单次fetch请求中,server为每个partition返回的消息最大尺寸,默认为:1M
##因此每次fetch请求的最大数据量推算为:partitions * max.partition.fetch.bytes
max.partition.fetch.bytes=1048576
##consumer会话超时时长,如果在此时间内,server尚未接收到consumer任何请求(包括心跳检测),那么
##server将会判定此consumer离线。
##此值越大,server等待consumer失效、rebalance时间就越长。
session.timeout.ms=30000
##当consumer指定的offset在kafka中不存在时(比如首次消费、或者相应的offset log数据已经删除),
##earliest:重置为kafka持有的最早的offset值(即从kafka现存的最早的消息开始消费)
##latest:重置为kafka持有的最新的offset值(即从最新的消息开始消费)
##none:如果broker不存在指定的offset的数据,则直接抛出异常
auto.offset.reset=latest
 
##是否开启自动提交(offset)
##如果开启,consumer已经消费的offset信息将会间歇性的提交到kafka中(持久保存)
enable.auto.commit=true
##当开启offset自动提交时,提交请求的时间频率
auto.commit.interval.ms=5000
##broker使用何种策略,分配partition给consumer;(或许class应该放在broker端的classpath中)
#partition.assignment.strategy=
 
##单次请求超时时间(比如poll、offset提交、心跳等请求)
##在超时之间,无响应的请求则会重试,直到超时或者重试次数达到阀值
request.timeout.ms=40000
##请求失败后,重试之前backoff的时间
retry.backoff.ms=100
 
##通常情况下,当consumer创建时将会获取kafka broker的metadata信息,
##当consumer消费时遇到特殊异常(比如leader迁移、broker拓扑结构变迁),也将会同步刷新metadata信息。
##此配置用于限制:即使没有检测到broker端metadata信息的变更,也将强制进行metadata同步的时间周期。
metadata.max.age.ms=300000

  ----------------------------------------------------------------------------------------------

                         深耕运维行业多年,擅长运维体系建设,方案落地。欢迎交流!

                                                    V: ywjw996

                                                    《 运维经纬 》

<think>嗯,用户这次想了解在CDH平台上使用kafka-consumer-offset-checker工具检查消费者偏移量的方法。从对话历史看,用户应该是在CDH集群中管理Kafka服务时遇到了消费者延迟问题,之前我已经提供了多种监控积压的方法,但用户特别点名要了解这个特定工具。 用户引用的两个站内参考很有价值:引用[1]展示了CDH中Kafka命令行工具的标准路径和基础用法,引用[2]则提示了复制因子配置不匹配的常见错误。这让我意识到需要重点说明版本兼容性问题——毕竟在较新的CDH版本中这个工具已被弃用。 考虑到用户可能是运维人员,需要具体操作指引,我决定分三部分回应:首先是工具路径定位,强调CDH的特殊目录结构;然后是具体命令语法,包括必填参数和常见错误处理;最后补充替代方案,因为在新版本中必须迁移到kafka-consumer-groups命令。 特别要注意的是引用[2]提到的复制因子错误,这在执行检查命令时经常出现,需要单独说明解决方案。另外用户环境可能有Kerberos认证,这个难点也要提前预警。 最后生成的延伸问题都围绕实际运维场景:第一个是版本过渡问题,第二个针对监控集成,第三个则关联到之前讨论过的消费者延迟诊断。这样既能延续当前话题,又能串联起用户可能需要的知识链。</think>在 CDH 平台的 Kafka 中使用 `kafka-consumer-offset-checker` 工具检查消费者偏移量,需注意以下关键步骤和版本适配问题: --- ### 一、工具路径与基础命令 1. **定位工具路径** CDH 的 Kafka 命令行工具位于: ```bash /opt/cloudera/parcels/KAFKA/bin/kafka-consumer-offset-checker ``` 2. **基础命令格式** ```bash ./kafka-consumer-offset-checker \ --zookeeper bigdata001:2181 \ # Zookeeper地址 --group your_consumer_group \ # 消费者组名 --topic your_topic # 目标主题(可选) ``` --- ### 二、关键输出解读 执行后输出示例: ``` GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG OWNER test_group zyl_test 0 15200 15200 0 consumer-1 test_group zyl_test 1 14800 15000 200 consumer-2 ``` - **CURRENT-OFFSET**:消费者当前提交的位移 - **LOG-END-OFFSET**:分区最新消息位移 - **LAG**:积压消息数 = `LOG-END-OFFSET - CURRENT-OFFSET` --- ### 三、版本适配与注意事项 1. **CDH 版本限制** - 仅适用于 **CDH 5.x / Kafka 0.9.x 及更早版本** - CDH 6.x (Kafka 2.x+) 已弃用此工具,需改用 `kafka-consumer-groups`: ```bash /opt/cloudera/parcels/KAFKA/bin/kafka-consumer-groups \ --bootstrap-server bigdata001:9092 \ --group your_group \ --describe ``` 2. **常见错误处理** - **复制因子不匹配错误**(引用[2]问题): ```log Number of alive brokers does not meet the required replication factor ``` **解决方案**: 修改 `__consumer_offsets` 主题的复制因子(需先停止 Kafka 服务): ```bash ./kafka-topics --zookeeper bigdata001:2181 \ --topic __consumer_offsets \ --alter --config min.insync.replicas=2 # 调整为可用Broker数 ``` 3. **Kerberos 认证环境** 若集群启用 Kerberos,需先获取凭证: ```bash kinit -kt kafka.keytab kafka/bigdata001@YOUR.DOMAIN ``` --- ### 四、新版本替代方案(CDH 6.x+) 使用 `kafka-consumer-groups` 替代: ```bash # 查看所有消费者组 ./kafka-consumer-groups --bootstrap-server bigdata001:9092 --list # 查看特定组详情 ./kafka-consumer-groups --bootstrap-server bigdata001:9092 \ --group your_group \ --describe --members --verbose ``` 输出包含: - **分区偏移量**(PARTITION, CURRENT-OFFSET, LOG-END-OFFSET, LAG) - **消费者成员分配情况**(MEMBER-ID, HOST) - **当前状态**(STABLE, REBALANCING) --- ### 五、操作验证流程 1. 创建测试主题(引用[1]方法): ```bash ./kafka-topics --create --zookeeper bigdata001:2181 \ --replication-factor 3 --partitions 3 --topic lag_test ``` 2. 启动控制台消费者: ```bash ./kafka-console-consumer --bootstrap-server bigdata001:9092 \ --topic lag_test --group lag_test_group ``` 3. **检查偏移量**: ```bash # CDH 5.x ./kafka-consumer-offset-checker --zookeeper bigdata001:2181 --group lag_test_group # CDH 6.x ./kafka-consumer-groups --bootstrap-server bigdata001:9092 --group lag_test_group --describe ``` --- > **关键提示**: > - 老工具 `kafka-consumer-offset-checker` 依赖 Zookeeper,新工具 `kafka-consumer-groups` 直连 Broker,更符合架构演进趋势[^1][^2] > - 生产环境建议通过 Cloudera Manager 配置自动化监控(参见前文方案),避免手动检查 --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值