Apache Kafka IO错误
我有一个非常基本的卡夫卡安装,只是为了testing。 现在我试图从控制台发送一些数据到一个主题:
./kafka-console-producer.sh --topic test --sync --broker-list 192.168.59.103:9092,192.168.59.103:9093,192.168.59.103:9094 test test2 test3 [2015-02-16 06:19:37,156] WARN Failed to send producer request with correlation id 12 to broker 1 with data for partitions [test,0] (kafka.producer.async.DefaultEventHandler) java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51) at sun.nio.ch.IOUtil.write(IOUtil.java:148) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:524) at java.nio.channels.SocketChannel.write(SocketChannel.java:493) at kafka.network.BoundedByteBufferSend.writeTo(BoundedByteBufferSend.scala:56) at kafka.network.Send$class.writeCompletely(Transmission.scala:75) at kafka.network.BoundedByteBufferSend.writeCompletely(BoundedByteBufferSend.scala:26) at kafka.network.BlockingChannel.send(BlockingChannel.scala:103) at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73) .... test4 test5
我收到了大约30%的信息。 这是否意味着我的configuration有问题?
为什么我只有三分之一的尝试呢? 是不是有关的事实,我有3个卡夫卡服务器,也许是其中一个(顺便说一句,我执行这个命令的同一个虚拟机,经纪人1运行)
另外,这是我在这个经纪人的日志中看到的:
ERROR Error on broker 1 while processing LeaderAndIsr request correlationId 16 received from controller 1 epoch 4 for partition [test,0] (state.change.logger) java.io.IOException: Invalid argument at sun.nio.ch.FileChannelImpl.map0(Native Method) at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:874) at kafka.log.OffsetIndex.<init>(OffsetIndex.scala:74)
不知道这是什么意思。 是否有可能卡夫卡得到了一个损坏的索引文件,并因此引发这样的错误? 主题“testing”是几分钟前创build的,顺便说一句,我没有重新启动任何东西。
我发现我可以转储索引到控制台,但它不工作:
kafka-run-class.sh kafka.tools.DumpLogSegments --files /kafka-logs/test-0/00000000000000000000.index --deep-iteration Dumping /kafka-logs/test-0/00000000000000000000.index Exception in thread "main" java.io.IOException: Invalid argument at sun.nio.ch.FileChannelImpl.map0(Native Method) at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:874) at kafka.log.OffsetIndex.<init>(OffsetIndex.scala:74)
有任何想法吗?
卡夫卡0.8.2.0,斯卡拉2.11
更新我似乎是一个Docker不兼容,更具体的不兼容docker共享卷。 因为如果我把日志数据放入本地docker文件系统,一切正常。 所以寻找build议什么configuration更改(docker / kafka / java / etc)我可以使它与共享卷工作。
我们有同样的问题,它出现了磁盘满了。 这也可以解释为什么你只能得到消息的三分之一。
- g8不了解docker cli的语法
- 在Docker容器中播放2.5.x不通过共享文件夹更新
- 如何dockerize我的玩Scala应用程序?
- 如何使用docker任务与sbt多项目
- 在Elasticbeanstalk for Scala应用程序中部署和托pipeDocker多容器环境的最佳实践是什么?
- Jenkins for Scala(SBT)Git master => Build => Test => Build Docker =>推入hub.docker
- 泊坞窗akka和斯卡拉,应用程序启动和停止后,没有理由
- sbt-docker无效的头字段值“oci …运行时错误:没有这样的文件错误
- 使用新的标签添加docker发布步骤到sbt-release过程