Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【kafka异常】kafka 常见异常处理方案(持续更新! 建议收藏)

【kafka异常】kafka 常见异常处理方案(持续更新! 建议收藏)

作者头像
石臻臻的杂货铺[同名公众号]
发布于 2021-07-19 07:56:47
发布于 2021-07-19 07:56:47
3.7K00
代码可运行
举报
文章被收录于专栏:kafka专栏kafka专栏
运行总次数:0
代码可运行

文章目录

日常运维 问题排查 怎么能够少了滴滴开源的 滴滴开源LogiKM一站式Kafka监控与管控平台

1. Leader的epoch过时

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
The leader epoch in the request is older than the epoch on the broker

--

Partition $topicPartition marked as failed

解决方法

说明 当前分区的Leader的epoch比Broker的epoch老 所以导致follow去fetchleader的时候报错; 只要重新发生一下Leader选举就行了;

2. 修改Broker.id出现异常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Configured broker.id 0 doesn't match stored broker.id 1 in meta.properties.
 If you moved your data, make sure your configured broker.id matches. If you intend to create a new broker, you should remove all data in your data directories (log.dirs).

出现这种情况一般是 你可能中途修改了Broker的配置broker.id; 又或者修改了log.dir路径,然后这个路径之前存在; 你可以看看log.dir文件夹下面的meta.properties #Wed Jun 23 17:59:02 CST 2021 broker.id=0 version=0 cluster.id=0 这里面的内容是之前的配置,你修改了broker.id之后跟这里不一致就抛出异常了;

解决方法

如果这个log.dir是属于这个Broker的,那么将server.properties 的broker.id修改成更meta.properties一致就行 如果你就是想修改一下BrokerId; 那么你需要把meta.properties中的broker.id该了; 反正最终是要让meta.propertiesserver.properties 中的broker.id保持一致;

如果这个log.dir是是以前的废旧数据的话,那你还是换一个路径好了;server.properties中的log.dir换个路径

修改Broker.id可能出现的异常

其实不是很建议修改BrokerId; 修改BrokerId可能会存在一些问题,比如

  1. 当前正在进行数据迁移; zk上的保存的还是原来的 broker.Id; 那就会导致这台Broker迁移失败
  2. 当你修改的 broker.Id; 那么如果配置了动态配置的话, 就不会生效了;所以你要记得把原来的动态配置添加回来; zk节点是:/config/brokers/{brokerID}
  3. other

meta.properties作用

其实通过这里你应该也可以理解为什么会存在meta.properties 这个文件; 他就是用来保持这个log.dir之前的Broker.id和cluster.id=0还有version的;因为你server.properties里这个个配置可以随便更改,难免会有出错; kafka会将你的配置跟这个meta.properties信息作对比,提醒你的配置不正确;

3. 文件加锁失败 Failed to acquire lock on file .lock in

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 Failed to acquire lock on file .lock in /Users/xxxx/work/IdeaPj/xxx/kafka/kafka-logs-0. A Kafka instance in another process or thread is using this directory.

异常原因:

Broker在启动的时候,会把log.dirs加上一个文件锁,以防其他程序对它进行篡改; 出现这种异常表示已经有一个程序对文件夹加上了锁了; 所以获取失败;

解决方法

这个时候你要检查一下,这个Broker是否已经启动过了,或者两个Broke中log.dirs配置了相同的文件夹; 如果上面你确定没有问题,那你还可以把相应的文件夹的.lock文件删掉; 强制去掉锁文件; (不建议这样操作)

4. 发送消息报错 UNKNOWN_TOPIC_OR_PARTITION

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WARN [Producer clientId=console-producer]  Error while fetching metadata with correlation id :  {test80=UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)

异常原因:

发送的TopicPartition不存在; 要么是Topic不存在 要么是发送过去的Partition不存在

解决方法

  1. 检查一下是不是Topic不存在
  2. 检查一下发送的Partition所在的Broker宕机了,导致发送失败(特别是发送消息的时候指定了分区号比较容易出现这个问题)
  3. 检查是不是Topic所在的Broker全部宕机了;

关于作者:石臻臻的杂货铺, 专注于 Java领域、大数据领域 等知识分享, 内容多为 原理 、源码、实战 等等, 坚持输出干货,所写内容必定经过验证,并深入源码分析,保证内容准确性, 长期在CSDN、和公众号【石臻臻的杂货铺】发布原创文章,欢迎关注! 如果有相关技术领域问题,欢迎进群交流,各个领域都有专人解答,你所问的,都会得到回应!


欢迎 Star和 共建由 滴滴开源的kafka的管理平台 满足所有开发运维日常需求

滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/07/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【kafka异常】kafka 常见异常处理方案(持续更新! )
其实通过这里你应该也可以理解为什么会存在meta.properties 这个文件; 他就是用来保持这个log.dir之前的Broker.id和cluster.id=0还有version的;因为你server.properties里这个个配置可以随便更改,难免会有出错; kafka会将你的配置跟这个meta.properties信息作对比,提醒你的配置不正确;
石臻臻的杂货铺[同名公众号]
2022/11/30
4.5K0
【kafka异常】kafka 常见异常处理方案(持续更新! )
一个kafka的辛酸填坑路
kafka是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。
柏炎
2022/08/23
9220
一个kafka的辛酸填坑路
【kafka学习笔记】 第三天--kafka的安装和使用
kafka是由scala语言写成的,后面用Java重构了,但是不管怎样,都要编译到jvm虚拟机中执行。
玖柒的小窝
2021/12/10
3300
【kafka学习笔记】 第三天--kafka的安装和使用
一图全解Kafka在zookeeper中的数据结构
kafka管控平台推荐使用 滴滴开源 的 Kafka运维管控平台(戳我呀) 更符合国人的操作习惯 、更强大的管控能力 、更高效的问题定位能力 、更便捷的集群运维能力 、更专业的资源治理 、更友好的运维生态 、 大家好,我是石臻臻,这是 「kafka专栏」 连载中的第「10」篇文章… 首发: 一图全解Kafka在zookeeper中的数据结构 一图知全貌 /cluster /cluster/id 持久数据节点 集群ID 当第一台Broker启动的时候, 发现/cl
石臻臻的杂货铺[同名公众号]
2021/09/09
1.1K0
Kafka单节点至集群的安装部署及注意事项
kafka简介 kafka的重要作用: 发布和订阅 像消息传递系统一样读写数据流。 处理 编写实时响应事件的可伸缩流处理应用程序 存储系统 将数据流安全地存储在分布式的,副本的,容错存储系统。kafk
Spark学习技巧
2018/01/31
1.9K0
Kafka单节点至集群的安装部署及注意事项
kafka集群搭建
RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。
Cyylog
2020/08/19
7890
kafka集群搭建及Java客户端使用
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 优势:
茶半香初
2021/11/26
1.1K0
kafka集群搭建及Java客户端使用
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。
小小工匠
2021/08/17
4900
Kafka群集部署
一、环境准备 主机名 IP 运行服务 kafka1 192.168.171.131 kafka+zookeeper kafka2 192.168.171.134 kafka+zookeeper kafka3 192.168.171.135 kafka+zookeeper 二、部署zookeeper服务 源码包(提取码:6q58) 1、kafka1配置如下 #部署zookeeper [root@kafka1 ~]# tar zxf zookeeper-3.4.9.tar.gz [root@kafka1 ~
小手冰凉
2020/05/09
8240
Kafka的定义和安装与配置
定义:Kafka是一个基于zookeeper协调的分布式、多副本的(replica)、支持分区的(partition)系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写的项目。
Java廖志伟
2022/03/07
6120
Kafka的定义和安装与配置
【kafka原理】kafka Log存储解析以及索引机制
启动之后kafka-client发送一个topic为消息szz-test-topic的消息
石臻臻的杂货铺[同名公众号]
2021/07/14
2.4K0
带你涨姿势的认识一下kafka
kafka 现在在企业应用和互联网项目中的应用越来越多了,本篇文章就从 kafka 的基础开始带你一展 kafka 的宏图
cxuan
2019/10/15
9680
带你涨姿势的认识一下kafka
Kafka 单节点多Kafka Broker集群
接前一篇文章,今天搭建一下单节点多Kafka Broker集群环境。 配置与启动服务 由于是在一个节点上启动多个 Kafka Broker实例,所以我们需要使用不同的端口来实现。 $ cp config/server.properties config/server-1.properties $ cp config/server.properties config/server-2.properties 修改 config/server-1.properties broker.id=1 listeners=
kongxx
2018/05/14
1.4K0
Kafka 服务器集群部署
上篇文章 Kafka 工作机制 讲述了 Kafka 的各组件(包括配置中心、Broker、消息生产者和消费者)的作用,分区与复制的机制等。有了这些概念,本文以三个 Broker 为例,讲述了 Kafka 集群的搭建步骤和方法,并以官方自带的命令行脚本进行消息的生产、消费、查看等操作。
IT技术小咖
2019/06/26
2K0
kafka安装使用教程
2:启动服务 运行kafka需要使用zookeeper,所以你需要先启动zookeeper,如果你没有zookeeper,你可以使用kafka自带打包和配置好的zookeeper。启动命令如下:
公众号-利志分享
2022/04/25
1.1K0
【kafka系列】centos7系统安装kafka
确保服务器上已经搭建完成JDK,zookeeper服务; 如果未搭建完成,请移步参考以下文章: 安装zookeeper: https://blog.csdn.net/xuan_lu/article/details/120474451 安装JDK1.8:https://blog.csdn.net/xuan_lu/article/details/107297710
沁溪源
2021/09/28
2K0
集群部署kafka和zookeeper
下载zookeeper版本,3.5.16源码安装后发现启动脚本一些缺少.class等的java lib库,网上有人建议用3.4系列,
mariolu
2020/06/22
1.2K0
Kafka集群搭建 以及命令「建议收藏」
测试机 三个节点 hadoop1 hadoop2 hadoop3 这三个节点 安装了独立的zookeeper 且我其他hadoop hbase等元数据信息都在上面 我不用Kafka自带的 zookeeper
全栈程序员站长
2022/06/27
3920
Kafka简单使用1. 单节点单broker的部署及使用2.单节点多broker3. 容错性测试
1. 单节点单broker的部署及使用 1.1.修改配置文件$KAFKA_HOME/config/server.properties的如下项: broker.id=0 listeners host.name log.dirs zookeeper.connect 1.2.启动Kafka kafka-server-start.sh 提示帮助信息: USAGE: /home/hadoop/app/kafka_2.11-0.9.0.0/bin/kafka-server-start.sh [-daemon] s
sparkle123
2018/04/26
7750
Kafka 知识整理
创建 1个分区 1个备份 名为 "custom-topic-name" 的主题,并同步到 Zookeeper(localhost:2181)
tonglei0429
2019/07/19
4090
相关推荐
【kafka异常】kafka 常见异常处理方案(持续更新! )
更多 >
交个朋友
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术趋势交流群
大数据技术前瞻 数据驱动业务实践
加入架构与运维趋势交流群
技术趋势前瞻 架构演进方向
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档