当前位置: 首页 > 知识库问答 >
问题:

Kafka在消费消息时崩溃

盖夕
2023-03-14

Kafka过去在我自己的电脑上工作得很好。我正在另一台电脑上工作,上面写着

为目录C:\tmp\kafka logs(kafka.server.LogDirFailureChannel)java中的\uu consumer\u offset-41创建日志时出错。木卫一。IOException:映射在sun失败。尼奥。总经理。Kafka地图(FileChannelImpl.java:940)。日志抽象索引。(AbstractIndex.scala:126)在Kafka。日志时间索引。(时间索引:scala:54)在Kafka。日志对数段$。在Kafka开放(LogSegment.scala:635)。日志日志Kafka的loadSegments(Log.scala:573)。日志日志(日志:scala:290)在Kafka。日志日志$。在Kafka应用(Log.scala:2141)。日志日志管理器$scala上的anonfun$getOrCreateLog$1(LogManager.scala:701)。选项Kafka的getOrElse(Option.scala:121)。日志日志管理器。在Kafka的getOrCreateLog(LogManager.scala:659)。簇分割$kafka上的anonfun$getOrCreateReplica$1(Partition.scala:199)。乌提尔斯。池$$anon$2。在java上应用(Pool.scala:61)。util。同时发生的ConcurrentHashMap。Kafka的computeIfAbsent(ConcurrentHashMap.java:1660)。乌提尔斯。水塘getAndMaybePut(Pool.scala:60)在Kafka。簇隔断在Kafka的getOrCreateReplica(Partition.scala:195)。簇分割$scala上的anonfun$makeLeader$3(Partition.scala:373)。收集我喜欢$scala上的anonfun$map$1(TraversableLike.scala:233)。收集迭代器。scala上的foreach(迭代器.scala:937)。收集迭代器。scala上的foreach$(Iterator.scala:937)。收集抽象迭代器。scala上的foreach(迭代器.scala:1425)。收集伊特拉布雷利克。scala的foreach(IterableLike.scala:70)。收集伊特拉布雷利克。scala的foreach$(类似IterableLike.scala:69)。收集抽象的。scala的foreach(Iterable.scala:54)。收集我喜欢。scala上的map(TraversableLike.scala:233)。收集我喜欢。将$(TraversableLike.scala:226)映射到scala。收集抽象可遍历。Kafka地图(可遍历,scala:104)。簇分割$kafka上的anonfun$makeLeader$1(Partition.scala:373)。乌提尔斯。CoreUtils$。Kafka的inLock(CoreUtils.scala:251)。乌提尔斯。CoreUtils$。Kafka的inWriteLock(CoreUtils.scala:259)。簇隔断Kafka的makeLeader(Partition.scala:367)。服务器复制经理$scala的anonfun$makeLeaders$5(ReplicaManager.scala:1170)。收集易变的。哈希映射$scala上的anonfun$foreach$1(HashMap.scala:145)。收集易变的。哈希表。scala的foreachEntry(HashTable.scala:235)。收集易变的。哈希表。scala上的foreachEntry$(HashTable.scala:228)。收集易变的。哈希映射。scala的foreachEntry(HashMap.scala:40)。收集易变的。哈希映射。Kafka的foreach(HashMap.scala:145)。服务器复制经理。Kafka的makeLeaders(ReplicaManager.scala:1168)。服务器复制经理。成为Kafka的领导者或追随者(ReplicaManager.scala:1080)。服务器Kafka皮斯。在Kafka的HandleLeaderAndisRequest(Kafka皮斯.斯卡拉:185)。服务器Kafka皮斯。Kafka的把手(Kafka皮斯.斯卡拉:110)。服务器Kafka雷克斯特汉德勒。在java上运行(KafkaRequestHandler.scala:69)。朗。丝线。运行(Thread.java:745)的原因是:java。lang.OutOfMemoryError:映射在sun失败。尼奥。总经理。sun的map0(本机方法)。尼奥。总经理。映射(FileChannelImpl.java:937)。。。41更多[2019-03-25 14:55:00296]信息[ReplicaManager broker=0]停止在目录C:\tmp\kafka日志(kafka.server.ReplicaManager)[2019-03-25 14:55:00296]错误[ReplicaManager broker=0]中提供副本,使broker成为分区主题的领导者时出错:\u consumer\u offset;分区:41;组长:无;所有副本:;InSyncReplicas:in dir None(kafka.server.ReplicaManager)

每当我试图通过发出以下命令来使用主题时,就会出现此错误:

bin\windows\kafka控制台使用者。bat--引导服务器本地主机:9092--主题更新观察服务器--从一开始

我的java版本是:

java版本“1.8.0_91”java(TM)SE运行时环境(构建1.8.0_91-b15)java热点(TM)64位服务器虚拟机(构建25.91-b15,混合模式)

ps:删除tmp目录并不能解决问题,它只是让我能够再次启动Kafka,一旦我想从给定的主题消费它就会崩溃

共有1个答案

越国源
2023-03-14

面对同样的问题。将Java版本升级到16.0。我会解决我的问题。还将JAVA_HOME设置为16版本,不带bin文件夹。例如C:\ProgramFiles\Java\jdk-16.0。1.

 类似资料:
  • 我有一个简单的Kafka设置。生成器正在以较高的速率向单个分区生成具有单个主题的消息。单个使用者正在使用来自此分区的消息。在此过程中,使用者可能会多次暂停处理消息。停顿可以持续几分钟。生产者停止产生消息后,所有排队的消息都将由使用者处理。生产者产生的消息似乎不会立即被消费者看到。我使用的是Kafka0.10.1.0。这里会发生什么?下面是使用消息的代码部分: 代理上的所有配置都保留为kafka默认

  • 我正在尝试让 kafka 消费者获取在 Java 中生成并发布到主题的消息。我的消费者如下。 consumer.java 当我运行上面的代码时,我在控制台中什么也看不到,屏幕后面的java producer程序正在‘AATest’主题下不断地发布数据。另外,在动物园管理员控制台中,当我尝试运行上面的consumer.java时,我得到了以下行 此外,当我运行指向 AATest 主题的单独控制台使用

  • 有什么方法可以阻止Kafka的消费者在一段时间内消费信息吗?我希望消费者停止一段时间,然后开始消费最后一条未消费的消息。

  • 我们有一个Kafka制作人,偶尔会制作一些信息。 我写了一个消费者来消费这些消息。问题是,只有当两个消息叠加时,它们才会被使用。例如,如果消息是在13:00产生的,消费者不做任何事情。如果另一条消息是在13:01生成的,则消费者会使用这两条消息。在kafkaTool中,在消费者属性中有一个名为LAG的列,当消息未被消费时,该列为1。我缺少的这个东西有什么配置吗? 消费者配置:

  • 我有一个简单的Kafka消费者微服务应用程序,它使用来自某个主题的消息,同一个应用程序运行在两个不同的池中。 所以,当消息由制作人生成,而我的应用程序尝试使用来自主题的消息时,它只被一个池中的一个人使用。 如何停止从消费者Kafka读取并发消息。我想在两个池中使用相同的消息。 这种情况下可能的解决方案是什么

  • 我是Kafka的新手。我在网上读了很多关于Kafka制作人和Kafka消费者的说明。我成功地实现了前者,它可以向Kafka集群发送消息。然而,我没有完成后一个。请帮我解决这个问题。我看到我的问题像StackOverflow上的一些帖子,但我想更清楚地描述一下。我在虚拟盒子的Ubuntu服务器上运行Kafka和Zookeeper。使用1个Kafka集群和1个Zookeeper集群的最简单配置(几乎是