2017-09-18 2 views
1

Ich bin verwirrt, wie kafka-Umlagerung-Paritionen für __consumer_offsets Thema funktioniert?Kafka-Neuzuweisung von __consumer_offsets falsch?

Ich beginne mit 1 ZK und 1 Kafka Broker, erstellen Sie ein Testthema mit Replikation = 1, Partition = 1. verbrauchen und produzieren. funktioniert gut.

Ich sehe __consumer_offsets Thema erstellt.

Jetzt füge ich einen zweiten Broker mit hinzu, offsets.topic.replication.factor = 2. Ich betreibe die,

kafka-Umhängen-Partitionen --zookeeper zookeeper1: 2181 --topics-to-move-json-Datei Themen-to-move.json --broker-Liste "101102" --generate

Die generierte Neuzuordnung sieht nicht richtig aus. Zeigt nur ein Replikat an, obwohl 2 Live-Broker vorhanden sind.

Ich hatte gehofft, für jede Partition folgende Repliken zu erhalten: [101, 102] oder [201, 101]

{ 
    "version": 1, 
    "partitions": [ 
    { 
     "topic": "__consumer_offsets", 
     "partition": 19, 
     "replicas": [101] 
    }, 
    { 
     "topic": "__consumer_offsets", 
     "partition": 30, 
     "replicas": [102] 
    }, 
    { 
     "topic": "__consumer_offsets", 
     "partition": 47, 
     "replicas": [101] 
    }, ... 

jeden Vorschlag zu schätzen wissen.

-Vms

Antwort

1

Wenn Sie den Replikationsfaktor für ein Thema erhöhen möchten, wie folgt vor:

  1. eine JSON-Datei Erstellen Sie die Neuzuordnung Plan enthält. In Ihrem Fall könnte die Datei wie folgt aussehen: {"version":1, "partitions":[ {"topic":"__consumer_offsets","partition":0,"replicas":[101,102]}, {"topic":"__consumer_offsets","partition":1,"replicas":[102,101]}, {"topic":"__consumer_offsets","partition":2,"replicas":[101,102]}, {"topic":"__consumer_offsets","partition":3,"replicas":[102,101]}, ... {"topic":"__consumer_offsets","partition":49,"replicas":[101,102]} ]}

  2. Befehl Ausführen unter RF für diese interne Thema zu erhöhen: bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file reassign.json --execute

Dann kafka-topics.sh --describe laufen, um zu sehen, ob Replikationsfaktor bis zu stoßen wird 2

+0

Dank @amethystic. Das hat funktioniert. Ich musste dies in Code ausführen, wenn neue Broker anstelle des Skripts hinzugefügt wurden. Verwendete folgende, ReassignPartitionsCommand.executeAssignment (zkUtils, neu zuweisenPartitionJson, new Throttle (-1, null)); – Vms

Verwandte Themen