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

Apache kafka将记录附加到主题时出错

吴单鹗
2023-03-14

我试图通过连接api消耗10百万行大小(600MB)的csv文件。连接开始,370万记录完成。之后,我得到下面的错误。

[2018-11-01 07:28:49,889] ERROR Error while appending records to topic-test-0 in dir /tmp/kafka-logs (kafka.server.LogDirFailureChannel)
java.io.IOException: No space left on device
        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at sun.nio.ch.FileDispatcherImpl.write(FileDispatcherImpl.java:60)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
        at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:211)
        at org.apache.kafka.common.record.MemoryRecords.writeFullyTo(MemoryRecords.java:95)
        at org.apache.kafka.common.record.FileRecords.append(FileRecords.java:151)
        at kafka.log.LogSegment.append(LogSegment.scala:138)
        at kafka.log.Log.$anonfun$append$2(Log.scala:868)
        at kafka.log.Log.maybeHandleIOException(Log.scala:1837)
        at kafka.log.Log.append(Log.scala:752)
        at kafka.log.Log.appendAsLeader(Log.scala:722)
        at kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala:634)
        at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
        at kafka.utils.CoreUtils$.inReadLock(CoreUtils.scala:257)
        at kafka.cluster.Partition.appendRecordsToLeader(Partition.scala:622)
        at kafka.server.ReplicaManager.$anonfun$appendToLocalLog$2(ReplicaManager.scala:745)
        at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
        at scala.collection.mutable.HashMap.$anonfun$foreach$1(HashMap.scala:138)
        at scala.collection.mutable.HashTable.foreachEntry(HashTable.scala:236)
        at scala.collection.mutable.HashTable.foreachEntry$(HashTable.scala:229)
        at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
        at scala.collection.mutable.HashMap.foreach(HashMap.scala:138)
        at scala.collection.TraversableLike.map(TraversableLike.scala:234)
        at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
        at scala.collection.AbstractTraversable.map(Traversable.scala:104)
        at kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala:733)
        at kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala:472)
        at kafka.server.KafkaApis.handleProduceRequest(KafkaApis.scala:489)
        at kafka.server.KafkaApis.handle(KafkaApis.scala:106)
        at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:69)
        at java.lang.Thread.run(Thread.java:748)
[2018-11-01 07:28:49,893] INFO [ReplicaManager broker=0] Stopping serving replicas in dir /tmp/kafka-logs (kafka.server.ReplicaManager)
[2018-11-01 07:28:49,897] INFO [ReplicaFetcherManager on broker 0] Removed fetcher for partitions __consumer_offsets-22,__consumer_offsets-30,__consumer_offsets-8,__consumer_offsets-21,__consumer_offsets-4,__consumer_offsets-27,__consumer_offsets-7,__consumer_offsets-9,__consumer_offsets-46,topic-test-0,__consumer_offsets-25,__consumer_offsets 

我有一个主题名主题测试

机器规格:

  • 操作系统:CentOs 7
  • 内存:16GB
  • 高清:80GB

我看到一些博客谈论log.dirsserver.property但事情不清楚它想要如何输入。我也要创建分区吗?我没有这样做,认为这是相同的数据文件。

共有1个答案

通建安
2023-03-14

将记录附加到dir/tmp/kafka日志(kafka.server.LogDirFailureChannel)java中的topic-test-0时出错。木卫一。IOException:当您在kafka主题中使用一个巨大的文件或流时,设备上没有剩余空间。然后转到默认日志目录/tmp/kafka日志,

[root@ENT-CL-015243 kafka-logs]# df -h
Filesystem                          Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel6u4x64-lv_root   61G   8.4G   49G  15% /
tmpfs                    7.7G     0  7.7G   0% /dev/shm
/dev/sda1                    485M   37M  423M   9% /boot
/dev/mapper/vg_rhel6u4x64-lv_home   2.0G   68M  1.9G   4% /home
/dev/mapper/vg_rhel6u4x64-lv_tmp    4.0G  315M  3.5G   9% /tmp
/dev/mapper/vg_rhel6u4x64-lv_var    7.9G  252M  7.3G   4% /var  

正如你可以看到在我的情况下只有3.5Gb的 /tmp空间可用,我面临着这个问题。我创建一个 /klogs在根和改变log.dirs=/klogs/kafka-logs在server.properties

 类似资料:
  • 我正在尝试按照本指南将消息从未加密的SNS主题传递到加密的SQS队列。我能够完成“为AWS服务配置KMS权限”步骤,但在“为生产者配置KMS权限”步骤中遇到了问题。我已经创建了IAM角色,但是将这个角色附加到我的SNS主题是我特别困惑的地方。以下是我自己的研究无法回答的一些问题: IAM角色是否可以附加到特定项目(SNS主题、SQS队列等)?如果没有,还有什么其他方法可以授予特定项目的权限 当说明

  • 问题内容: 我使用log4j,并希望将某些Logger的输出路由到特定文件。 我已经有多个附加器。现在,为了简化调试,我想告诉log4j,应该将特定类(例如foo.bar.Baz)生成的输出写入特定的日志文件。 能做到吗? 问题答案: 一个例子:

  • 问题内容: 场景是这样的: 我们正在使用JBehave和Selenium进行系统,集成和端到端测试。我正在检查超过20个值的页面上的计算结果以进行验证。使用Junit Assert,如果其中一个值不正确的第一个实例,则整个测试将失败。我想做的是,如果遇到断言失败,那么测试将继续执行,这样我就可以整理一次测试而不是多次测试中所有不正确的值。 为此,我捕获了断言并将未通过验证的所有内容写到日志文件中。

  • Chrome主题与扩展和应用的结构类似,包含一个Manifest文件和一些图片资源。主题的Manifest结构如下: { "version": "2.6", "name": "camo theme", "theme": { "images" : { "theme_frame" : "images/theme_frame_camo.pn

  • 我正在尝试从CloudWatch启动StepFunction。当事件源是一个时间表时,这就像一个魅力。但是,当我尝试创建事件模式来观看相应的SNS主题时,CloudWatch看不到它的发布。我尝试了两种默认模式: 并使用arn: 在这两种情况下,当我发布到主题时都没有发生任何事情。我做错了什么?更新:不幸的是,我不明白“事件模式”规则是干什么的,它在其他情况下不起作用——即使事件是从lambda手

  • 我已经把我的log4j放好了。我的webapp的lib文件夹中的properties文件我还尝试在META-INF中输入如下内容: 这是我的log4j.properties.我得到以上警告和记录器是不写任何文件。我也创建了文件夹结构,如上所述。