10

以下のコードソースを使用して、AdminCommand を介して kafka トピックを作成しようとしています

 ZkClient zkClient = new ZkClient(kafkaHost, 10000, 10000, ZKStringSerializer$.MODULE$);
    AdminUtils.createTopic(zkClient, "pa_reliancepoc_telecom_usageevent", 10, 2, new Properties());

しかし、以下の例外が発生します

Exception in thread "main" 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)

ただし、シェル コマンドを使用してトピックを作成できます。

4

3 に答える 3

5

replication_factor > 1. _

ファイルのコピーを複数持つだけで、これを行うことができ server.propertiesます。例
server-1.properties&server-2.properties

次に、それらのファイルのそれぞれに異なるbroker.id&portを指定して、それらを一意にする必要があります..

   config/server-1.properties:
     broker.id=1
     port=9093
     log.dir=/tmp/kafka-logs-1

   config/server-2.properties:
     broker.id=2
     port=9094
     log.dir=/tmp/kafka-logs-2

そして、次のコマンドで複数のインスタンスを開始します

> bin/kafka-server-start.sh config/server-1.properties &
> bin/kafka-server-start.sh config/server-2.properties &

詳細については、「ステップ 6: マルチブローカー クラスターのセットアップ」を確認してください。

于 2015-01-23T09:30:43.133 に答える