报错背景:

CDH集成kafka插件之后,启动kafka时就报出此错误。

报错现象:

-- ::, ERROR state.change.logger: [Controller id= epoch=] Initiated state change for partition __consumer_offsets- from OfflinePartition to OnlinePartition failed
kafka.common.NoReplicaOnlineException: No replica in ISR for partition __consumer_offsets-8 is alive. Live brokers are: [Set(50, 51, 52)], ISR brokers are: [68]
at kafka.controller.OfflinePartitionLeaderSelector.selectLeader(PartitionLeaderSelector.scala:)
at kafka.controller.PartitionStateMachine.electLeaderForPartition(PartitionStateMachine.scala:)
at kafka.controller.PartitionStateMachine.kafka$controller$PartitionStateMachine$$handleStateChange(PartitionStateMachine.scala:)
at kafka.controller.PartitionStateMachine$$anonfun$triggerOnlinePartitionStateChange$.apply(PartitionStateMachine.scala:)
at kafka.controller.PartitionStateMachine$$anonfun$triggerOnlinePartitionStateChange$.apply(PartitionStateMachine.scala:)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$.apply(TraversableLike.scala:)
at scala.collection.mutable.HashMap$$anonfun$foreach$.apply(HashMap.scala:)
at scala.collection.mutable.HashMap$$anonfun$foreach$.apply(HashMap.scala:)
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:)
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:)
at scala.collection.mutable.HashMap.foreach(HashMap.scala:)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:)
at kafka.controller.PartitionStateMachine.triggerOnlinePartitionStateChange(PartitionStateMachine.scala:)
at kafka.controller.PartitionStateMachine.startup(PartitionStateMachine.scala:)
at kafka.controller.KafkaController.onControllerFailover(KafkaController.scala:)
at kafka.controller.KafkaController.elect(KafkaController.scala:)
at kafka.controller.KafkaController$Reelect$.process(KafkaController.scala:)
at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$.apply$mcV$sp(ControllerEventManager.scala:)
at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$.apply(ControllerEventManager.scala:)
at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$.apply(ControllerEventManager.scala:)
at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:)
at kafka.controller.ControllerEventManager$ControllerEventThread.doWork(ControllerEventManager.scala:)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:)

报错原因:

主要信息:No replica in ISR for partition __consumer_offsets-8 is alive

信息翻译:ISR中没有用于分区__consumer_offsets-8的副本存活

根据网上的资料,可以初步分析原因是leader的选举出现了问题。

四种 leader 选举实现类及对应触发条件如下所示:

实现 触发条件
OfflinePartitionLeaderSelector leader 掉线时触发
ReassignedPartitionLeaderSelector 分区的副本重新分配数据同步完成后触发的
PreferredReplicaPartitionLeaderSelector 最优 leader 选举,手动触发或自动 leader 均衡调度时触发
ControlledShutdownLeaderSelector broker 发送 ShutDown 请求主动关闭服务时触发

OfflinePartitionLeaderSelector Partition leader 选举的逻辑是:

  1. 如果 isr 中至少有一个副本是存活的,那么从该 Partition 存活的 isr 中选举第一个副本作为新的 leader,存活的 isr 作为新的 isr;
  2. 否则,如果脏选举(unclear elect)是禁止的,那么就抛出 NoReplicaOnlineException 异常;
  3. 否则,即允许脏选举的情况下,从存活的、所分配的副本(不在 isr 中的副本)中选出一个副本作为新的 leader 和新的 isr 集合;
  4. 否则,即是 Partition 分配的副本没有存活的,抛出 NoReplicaOnlineException 异常;

根据以上信息可知,kafka的副本有挂掉的,但是具体什么原因我无法定位。

报错解决:

如果是CDH报错,我的做法是将kafka的所以topic都给删除

1.使用命令删除topic:
kafka-topics.sh --delete --zookeeper localhost:2181 --topic AlarmHis
只是这样事实上并没有真正删Topic
2.进入/tmp/kafka-logs目录,删除文件名为test的文件夹
3.进入zookeeper的安装目录,再进入bin目录下,
使用命令启动zookeeper客户端 zookeeper-client,
再使用命令 ls /brokers/topics 查看所建的topic,
使用命令 rmr /brokers/topics/test。

删除完成之后关闭所有服务,重启计算机,启动集群。

此时CDH没有了报错,但是后来发现云主机中kafka的log文件里依然报错产生,暂时未能解决。

参考:https://www.colabug.com/3174494.html

报错:(未解决)NoReplicaOnlineException: No replica in ISR for partition __consumer_offsets-8 is alive. Live brokers are: [Set(50, 51, 52)], ISR brokers are: [68]的更多相关文章

  1. 在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象。你可能没有合适的权限”

    在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象.你可能没有合适的权限” 打开组策略管理其它选项提示:找不到指定路径.之前做过的操作:取消域控主机上的共享目录sysvol和 ...

  2. 安装skype for business server组件 报错“未满足先决条件”和安装KB2982006补丁提示“此更新不适用于你的计算机”

    安装skype for business server组件 报错“未满足先决条件” 上网经查询发现是没有安装KB2982006-x64 更新补丁 去官网上找这个补丁,发现这个补丁要热更新啥的,还要写邮 ...

  3. VS调试 启动vs报错--未启动IIS

    VS调试 启动程序报错——未启动IIS Express Web服务 解决办法: 1.关闭VS. 2.删出项目文件下的".vs"文件. 3.重新启动解决方案. 4.编译,运行OK. ...

  4. Springboot数据库连接池报错的解决办法

    Springboot数据库连接池报错的解决办法 这个异常通常在Linux服务器上会发生,原因是Linux系统会主动断开一个长时间没有通信的连接 那么我们的问题就是:数据库连接池长时间处于间歇状态,导致 ...

  5. window7下安装第三方包报错及解决

    window7 64位下安装第三方包,,比如安装yaml的exe执行文件,会 报错及解决:python version 2.7(3.4) required,which was not found in ...

  6. pom.xml里有红叉报错的解决办法

    pom.xml里有红叉报错的解决办法一: 1.把鼠标点在报的错上发现pom.xml报如下错误: Multiple annotations found at this line: - Failure t ...

  7. eclipes的Spring注解SequenceGenerator(name="sequenceGenerator")报错的解决方式

    eclipes的Spring注解SequenceGenerator(name="sequenceGenerator")报错的解决方式 右键项目打开Properties—>JA ...

  8. Can't bind to local 8700 for debugger报错和解决

    [2016-02-15 22:37:17 - ddms] Can't bind to local 8700 for debugger报错和解决 1.打开studio monitor是出错: Can't ...

  9. Loadrunner参数化连接oracle、mysql数据源报错及解决办法

    Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...

随机推荐

  1. 4:ELK分析tomcat日志

    五.ELK分析tomcat日志 1.配置FIlebeat搜集tomcat日志 2.配置Logstash从filebeat输入tomcat日志 3.查看索引 4.创建索引

  2. php 程序执行时间检测

    我们有的时经常需要做程序的执行时间执行效率判断.大理石平台检定规程 实现的思路如下: <?php //记录开始时间 //记录结整时 // 开始时间  减去(-)  结束时间  得到程序的运行时间 ...

  3. html5 打开摄像头

    <video onloadedmetadata="" id="inputVideo" style="width: 1080px;height: ...

  4. Tomcat 部署多个web项目

    1.若Tomcat的端口设置为10000,则http://localhost:10000访问的目录是 webapps 2.Service.xml中host内配置Context标签,path+docba ...

  5. 常见的 eslint 基本报错信息

    Missing semicolon 缺少分号 Missing space before opening brace 左大括号前缺少空格 Trailing spaces not allowed 不允许尾 ...

  6. 洛谷 P2627 修剪草坪 题解

    P2627 修剪草坪 题目描述 在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠. 然而,Fa ...

  7. BZOJ 1073: [SCOI2007]kshort

    二次联通门 : BZOJ 1073: [SCOI2007]kshort /* BZOJ 1073: [SCOI2007]kshort A* k短路 但是会爆一个点, 是卡A*的 */ #include ...

  8. Codeforces 1172D. Nauuo and Portals 构造

    原文链接www.cnblogs.com/zhouzhendong/p/CF1172D.html 前言 明哥神仙打cf方式真潇洒.45分钟切D后就不打了? 我当场爆肝D想错方向不会做自闭了. 题解 考虑 ...

  9. "笨方法"学习CNN图像识别(二)—— tfrecord格式高效读取数据

    原文地址:https://finthon.com/learn-cnn-two-tfrecord-read-data/-- 全文阅读5分钟 -- 在本文中,你将学习到以下内容: 将图片数据制作成tfre ...

  10. 解决 screen 连接不上,提示“There is no screen to be resumed matching 18352.” 的问题

    当你挂起screen,下次想重新连上screen时,有时会出现screen session的状态为Attached但是却连不上的情况,比如我想重新进入session id 为18352的screen, ...