参考:https://stackoverflow.com/questions/43042144/kafka-server-failed-to-start-java-io-ioexception-map-failed
报错日志
[2022-02-15 16:50:40,558] ERROR Error while deleting the clean shutdown file in dir /home/es/kafka_2.11-2.2.1/logs (kafka.server.LogDirFailureChannel)
java.io.IOException: Map failedat sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:938)at kafka.log.AbstractIndex.<init>(AbstractIndex.scala:126)at kafka.log.OffsetIndex.<init>(OffsetIndex.scala:53)at kafka.log.LogSegment$.open(LogSegment.scala:633)at kafka.log.Log$$anonfun$kafka$log$Log$$loadSegmentFiles$3.apply(Log.scala:467)at kafka.log.Log$$anonfun$kafka$log$Log$$loadSegmentFiles$3.apply(Log.scala:454)at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)at kafka.log.Log.kafka$log$Log$$loadSegmentFiles(Log.scala:454)at kafka.log.Log$$anonfun$loadSegments$1.apply$mcV$sp(Log.scala:565)at kafka.log.Log$$anonfun$loadSegments$1.apply(Log.scala:559)at kafka.log.Log$$anonfun$loadSegments$1.apply(Log.scala:559)at kafka.log.Log.retryOnOffsetOverflow(Log.scala:2060)at kafka.log.Log.loadSegments(Log.scala:559)at kafka.log.Log.<init>(Log.scala:292)at kafka.log.Log$.apply(Log.scala:2193)at kafka.log.LogManager.kafka$log$LogManager$$loadLog(LogManager.scala:265)at kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$11$$anonfun$apply$15$$anonfun$apply$2.apply$mcV$sp(LogManager.scala:345)at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:63)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.OutOfMemoryError: Map failedat sun.nio.ch.FileChannelImpl.map0(Native Method)at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:935)... 25 more
原因JVM是32位的,Linxu系统是64位的
查看JVM位数
[root@r-wb-16 bin]# java -d64 -version
Error: This Java instance does not support a 64-bit JVM.
Please install the desired version.
[root@r-wb-16 bin]#
[root@r-wb-16 bin]# java -d32 -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) Server VM (build 25.311-b11, mixed mode)
安装64位JDK后查看
[root@r-wb-16 ~]# java -d64 -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
[root@r-wb-16 ~]# java -d32 -version
Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.
重新启动Kafka,发现正常