Přeskočit obsah

Přesunutí Particí v Kafka

Když je přidán nový uzel Kafka, Kafka automaticky nepřeřazuje partici. Následující kroky se používají k manuálnímu přeřazení particí Kafka pro specifikované téma (témata):

1.) Přejděte do kontejneru Kafka

docker exec -it kafka_container bash

2.) Vytvořte /tmp/topics.json s tématy, jejichž particie by měly být přeřazeny ve formátu:

cat << EOF | tee /tmp/topics.json
{
"topics": [
{"topic": "events.tenant.stream"},
],
"version": 1
} 
EOF

3.) Vytvořte výstup reassignment JSON ze seznamu témat, která budou migrována, a specifikujte ID brokerů v seznamu brokerů:

/usr/bin/kafka-reassign-partitions --zookeeper localhost:2181 --broker-list "121,122,221,222" --generate --topics-to-move-json-file /tmp/topics.json 

Výsledek by měl být uložen ve /tmp/reassign.json a vypadat následovně, se všemi tématy a partici s novým přidělením:

[appuser@lm11 data]$ cat /tmp/reassign.json 
{"version":1,"partitions":[{"topic":"events.tenant.stream","partition":0,"replicas":[122],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":1,"replicas":[221],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":2,"replicas":[222],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":3,"replicas":[121],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":4,"replicas":[122],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":5,"replicas":[221],"log_dirs":["any"]}]}

4.) Použijte výstup z předchozího příkazu jako vstup pro provedení přeřazení/vyvážení:

/usr/bin/kafka-reassign-partitions --zookeeper localhost:2181  --execute --reassignment-json-file /tmp/reassign.json --additional --bootstrap-server localhost:9092

To je vše! Nyní by Kafka měla provést přeřazení particí během následujících hodin.

Pro více informací, viz Přesunutí partící v Apache Kafka Clusteru .