报错:(未解决)NoReplicaOnlineException: No replica in ISR for partition __consumer_offsets-8 is alive. Live brokers are: [Set(50, 51, 52)], ISR brokers are: [68]
报错背景:
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 选举的逻辑是:
- 如果 isr 中至少有一个副本是存活的,那么从该 Partition 存活的 isr 中选举第一个副本作为新的 leader,存活的 isr 作为新的 isr;
- 否则,如果脏选举(unclear elect)是禁止的,那么就抛出 NoReplicaOnlineException 异常;
- 否则,即允许脏选举的情况下,从存活的、所分配的副本(不在 isr 中的副本)中选出一个副本作为新的 leader 和新的 isr 集合;
- 否则,即是 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]的更多相关文章
- 在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象。你可能没有合适的权限”
在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象.你可能没有合适的权限” 打开组策略管理其它选项提示:找不到指定路径.之前做过的操作:取消域控主机上的共享目录sysvol和 ...
- 安装skype for business server组件 报错“未满足先决条件”和安装KB2982006补丁提示“此更新不适用于你的计算机”
安装skype for business server组件 报错“未满足先决条件” 上网经查询发现是没有安装KB2982006-x64 更新补丁 去官网上找这个补丁,发现这个补丁要热更新啥的,还要写邮 ...
- VS调试 启动vs报错--未启动IIS
VS调试 启动程序报错——未启动IIS Express Web服务 解决办法: 1.关闭VS. 2.删出项目文件下的".vs"文件. 3.重新启动解决方案. 4.编译,运行OK. ...
- Springboot数据库连接池报错的解决办法
Springboot数据库连接池报错的解决办法 这个异常通常在Linux服务器上会发生,原因是Linux系统会主动断开一个长时间没有通信的连接 那么我们的问题就是:数据库连接池长时间处于间歇状态,导致 ...
- window7下安装第三方包报错及解决
window7 64位下安装第三方包,,比如安装yaml的exe执行文件,会 报错及解决:python version 2.7(3.4) required,which was not found in ...
- pom.xml里有红叉报错的解决办法
pom.xml里有红叉报错的解决办法一: 1.把鼠标点在报的错上发现pom.xml报如下错误: Multiple annotations found at this line: - Failure t ...
- eclipes的Spring注解SequenceGenerator(name="sequenceGenerator")报错的解决方式
eclipes的Spring注解SequenceGenerator(name="sequenceGenerator")报错的解决方式 右键项目打开Properties—>JA ...
- 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 ...
- Loadrunner参数化连接oracle、mysql数据源报错及解决办法
Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64, 两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...
随机推荐
- native与H5优缺点及H5测试
一.native(原生)与H5优缺点介绍 native(原生)优点 1.运行速度快 2.可以应用到底层的API 3.便捷性与易用性 4.打开会比较节省流量 native(原生)缺点 1.不同操作系统需 ...
- 浅谈JS高阶函数
引入 我们都知道函数是被设计为执行特定任务的代码块,会在某代码调用它时被执行,获得返回值或者实现其他功能.函数有函数名和参数,而函数参数是当调用函数接收的真实的值. 今天要说的高阶函数的英文为High ...
- 一文读懂后缀自动机 Suffix_Automata
原论文(俄文)地址:suffix_automata 原翻译(中文)地址:后缀自动机详解(DZYO的博客) Upd:强推浅显易懂(?)的SAM讲解 后缀自动机 后缀自动机(单词的有向无环图)--是一种强 ...
- mysql5.7的手动安装
1.安装必要的组件 | yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ li ...
- C# 打开 EXE 文件
命名空间是using System.Diagnostics; 在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍C#调用exe的方法.在C#中,通过Process类来进行进程操作. Proc ...
- 2-STM32+W5500+GPRS物联网开发基础篇-基础篇学习的内容
https://www.cnblogs.com/yangfengwu/p/10936553.html 这次的基础篇为公开篇,将公开所有基础篇的资料和源码 现在说一下基础篇准备公开的内容:(大部分哈,要 ...
- Problem 3 二维差分
$des$ 考虑一个 n ∗ n 的矩阵 A,初始所有元素均为 0.执行 q 次如下形式的操作: 给定 4 个整数 r,c,l,s, 对于每个满足 x ∈ [r,r+l), y ∈ [c,x−r+c] ...
- (15)打鸡儿教你Vue.js
组件化vue.js 组件单向绑定 组件双向绑定 组件单次绑定 创建组件构造器 注册组件 使用组件 Vue.extend() Vue.component() 使用组件 <div id=" ...
- 《挑战30天C++入门极限》新手入门:关于C++中的内联函数(inline)
新手入门:关于C++中的内联函数(inline) 在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数. 可能说到这里,很 ...
- 小程序wepy购物车的逻辑
<!-- 剩余可销售商品数量 大于 0,且购买未达上限--> <view wx:if="{{(detaildata.boughtNum < detaildata.bu ...