报错背景:

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. Python——python3的requests模块的导入

    前言 突然就要搞python,我这个心哦~ 版本 | python 3.7 步骤 配置环境变量 右击-->属性-->打开文件位置 进入到脚本目录: C:\Users\Administrat ...

  2. ArrayList && LinkList

    1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList ...

  3. learning java AWT 布局管理器CardLayout

    import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; public class CardLayo ...

  4. web基本概念

    一.互联网 互联网(英语:Internet),又称网际网络,或音译因特网(Internet).英特网,互联网始于1969年美国的阿帕网.是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连 ...

  5. (25)打鸡儿教你Vue.js

    vue-cli // 全局安装 vue-cli npm install --global vue-cli // 创建一个基于 webpack 模板的新项目 vue init webpack my-pr ...

  6. 获取句柄的类型以及对应的ID序号

    遍历所有进程下的所有句柄,以及对应句柄类型. 一丶简介 在有的时候.我们会需要对应句柄名字.以及句柄类型的名称. 以及它所对应的的ID. 因为每个系统不一样.所以每次都是不一样的. 有的时候我们就需要 ...

  7. CentOS 6.5开放端口方法

    lsof -i tcp:80   列出所有端口   netstat -ntlp   1.开启端口(以80端口为例)         方法一:            /sbin/iptables -I ...

  8. CF1187F Expected Square Beauty(期望)

    题目 CF1187F Expected Square Beauty 做法 \(B(x)=\sum\limits_{i=1}^n I_i(x),I_i(x)=\begin{cases}1&x_i ...

  9. SpringBoot获取Freemarker模板引擎,生成HTML代码

    今天用Ajax异步添加评论,加载Freemarker模板引擎,生成模板模块 1.新建Freemarker模板 <li id="${comment.oId}"> < ...

  10. Linux下的crontab定时执行任务命令

    0x00 简介 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的 ...