2017-03-27 4 views
2

아래 오류 때문에 Kafka 서버를 시작할 수 없습니다.Kafka 서버를 시작하지 못했습니다 - java.io.IOException : Map failed

java.io.IOException: Map failed 
    at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:940) 
    at kafka.log.AbstractIndex.<init>(AbstractIndex.scala:61) 
    at kafka.log.TimeIndex.<init>(TimeIndex.scala:55) 
    at kafka.log.LogSegment.<init>(LogSegment.scala:73) 
    at kafka.log.Log.loadSegments(Log.scala:267) 
    at kafka.log.Log.<init>(Log.scala:116) 
    at kafka.log.LogManager$$anonfun$createLog$1.apply(LogManager.scala:365) 
    at kafka.log.LogManager$$anonfun$createLog$1.apply(LogManager.scala:361) 
    at scala.Option.getOrElse(Option.scala:121) 
    at kafka.log.LogManager.createLog(LogManager.scala:361) 
    at kafka.cluster.Partition$$anonfun$getOrCreateReplica$1.apply(Partition.scala:109) 
    at kafka.cluster.Partition$$anonfun$getOrCreateReplica$1.apply(Partition.scala:106) 
    at kafka.utils.Pool.getAndMaybePut(Pool.scala:70) 
    at kafka.cluster.Partition.getOrCreateReplica(Partition.scala:105) 
    at kafka.cluster.Partition$$anonfun$4$$anonfun$apply$3.apply(Partition.scala:166) 
    at kafka.cluster.Partition$$anonfun$4$$anonfun$apply$3.apply(Partition.scala:166) 
    at scala.collection.mutable.HashSet.foreach(HashSet.scala:78) 
    at kafka.cluster.Partition$$anonfun$4.apply(Partition.scala:166) 
    at kafka.cluster.Partition$$anonfun$4.apply(Partition.scala:160) 
    at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:213) 
    at kafka.utils.CoreUtils$.inWriteLock(CoreUtils.scala:221) 
    at kafka.cluster.Partition.makeLeader(Partition.scala:160) 
    at kafka.server.ReplicaManager$$anonfun$makeLeaders$4.apply(ReplicaManager.scala:754) 
    at kafka.server.ReplicaManager$$anonfun$makeLeaders$4.apply(ReplicaManager.scala:753) 
    at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99) 
    at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99) 
    at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:230) 
    at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40) 
    at scala.collection.mutable.HashMap.foreach(HashMap.scala:99) 
    at kafka.server.ReplicaManager.makeLeaders(ReplicaManager.scala:753) 
    at kafka.server.ReplicaManager.becomeLeaderOrFollower(ReplicaManager.scala:698) 
    at kafka.server.KafkaApis.handleLeaderAndIsrRequest(KafkaApis.scala:148) 
    at kafka.server.KafkaApis.handle(KafkaApis.scala:84) 
    at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:62) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.OutOfMemoryError: Map failed 
    at sun.nio.ch.FileChannelImpl.map0(Native Method) 
    at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:937) 
    ... 34 more 

다음 옵션을 사용해보십시오. 그러나 아무 소용이 없습니다. 도와주세요

32 비트에서 64 비트로 OS를 업그레이드했습니다.
Java 힙 크기를 1GB로 늘립니다. 이것은 당신이 vm.max_map_count을 높이기 위해 시도 할 수있는 문제가 해결되지 않는 경우
제거 된 비트 및 64 비트에 JVM을 업그레이드 아파치 카프카

+0

당신의 카프카 버전은 무엇입니까 :

은로 설정을 증가? –

+0

JVM이 문제입니다. JVM 32 비트를 사용하고 64 비트로 업그레이드하면 문제가 해결됩니다. 감사. – Gopi

+1

좋습니다. 그 때 대답을 게시해야합니다! 다른 사람에게 도움이 될 수 있습니다. –

답변

2

를 설치 한이 문제를

2

해결. 기본값은 65536입니다. (sysctl vm.max_map_count으로 확인하십시오.)

cat /proc/[kafka-pid]/maps | wc -l을 사용하면 몇 개의 맵이 사용되는지 확인할 수 있습니다.

sysctl -w vm.max_map_count=262144 
+0

나를 위해 작동하지 않았다, 나는 32 비트 JVM을 사용하고 있습니다. –