用kfafka命令:./kafka-server-start.sh ../config/server.properties &啓動時報如下錯誤:html
[2016-04-27 21:54:44,745] ERROR [KafkaApi-100] error when handling request Name: TopicMetadataRequest; Version: 0; CorrelationId: 1496; ClientId: producer-1; Topics: Interation,Booksheet (kafka.server.KafkaApis)java
kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:155)
at kafka.server.KafkaApis[Math Processing Error]anonfun$handleTopicMetadataRequest$2.apply(KafkaApis.scala:612)
at scala.collection.immutable.Set$Set2.foreach(Set.scala:106)
at kafka.server.KafkaApis.handleTopicMetadataRequest(KafkaApis.scala:612)
at kafka.server.KafkaApis.handle(KafkaApis.scala:71)
at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:42)apache
at Java.lang.Thread.run(Thread.java:662)app
解決辦法是:ui
複製kafka/config路徑下的server.properties文件爲:server-1.properties和server-2.properties.net
並修改這兩個文件的配置項:scala
config/server-1.properties: broker.id=1 listeners=PLAINTEXT://:9093 log.dir=/tmp/kafka-logs-1 config/server-2.properties: broker.id=2 listeners=PLAINTEXT://:9094 log.dir=/tmp/kafka-logs-2
broker.id、port、log.dir在這三個配置項中都不同。code
修改完成以後啓動:server
./kafka-server-start.sh ../config/server.properties &htm
./kafka-server-start.sh ../config/server-1.properties &
./kafka-server-start.sh ../config/server-2.properties &
前一個啓動可能還會報這個錯,繼續啓動,都啓動成功以後這個問題就解決了!
官方文檔參考地址:http://kafka.apache.org/documentation.html#quickstart_multibroker