Ich benutze kafka 0.8.2 & einer meiner Kafka-Server gestorben (keine Möglichkeit, die Daten auf den Datenträgern wiederherzustellen). Es gibt ein Thema mit der Replikation von 1 mit einer der Partitionen auf dem toten Server. Ich dachte, eine Neuzuweisung würde die Metadaten für diese Partition auf einen neuen Server verschieben, ohne die Daten zu benötigen, aber die Neuzuweisung bleibt bei in progress
.Abbrechen kafka Partition Aktion zuweisen
Ich lief:
$ /opt/kafka/kafka/bin/kafka-reassign-partitions.sh --zookeeper myzookeeper.my.com --reassignment-json-file new_assignment.json --verify
Status of partition reassignment:
Reassignment of partition [topicX,1] is still in progress
Das wird nie gelingen, da die toten Server nie wieder kommt.
In dem neuen Protokoll des Servers, ich sah:
[2015-05-28 06:25:15,401] INFO Completed load of log topicX-1 with log end offset 0 (kafka.log.Log)
[2015-05-28 06:25:15,402] INFO Created log for partition [topicX,1] in /mnt2/data/kafka with properties {segment.index.bytes -> 10485760, file.delete.delay.ms -> 60000, segment.bytes -> 536870912, flush.ms -> 9223372036854775807, delete.retention.ms -> 86400000, index.interval.bytes -> 4096, retention.bytes -> -1, min.insync.replicas -> 1, cleanup.policy -> delete, unclean.leader.election.enable -> true, segment.ms -> 604800000, max.message.bytes -> 1000012, flush.messages -> 9223372036854775807, min.cleanable.dirty.ratio -> 0.5, retention.ms -> 259200000, segment.jitter.ms -> 0}. (kafka.log.LogManager)
[2015-05-28 06:25:15,403] WARN Partition [topicX,1] on broker 4151132: No checkpointed highwatermark is found for partition [topicX,1] (kafka.cluster.Partition)
[2015-05-28 06:25:15,405] INFO [ReplicaFetcherManager on broker 4151132] Removed fetcher for partitions (kafka.server.ReplicaFetcherManager)
[2015-05-28 06:25:15,408] INFO [ReplicaFetcherManager on broker 4151132] Added fetcher for partitions List() (kafka.server.ReplicaFetcherManager)
[2015-05-28 06:25:15,411] INFO [ReplicaFetcherManager on broker 4151132] Removed fetcher for partitions (kafka.server.ReplicaFetcherManager)
[2015-05-28 06:25:15,413] INFO [ReplicaFetcherManager on broker 4151132] Added fetcher for partitions List() (kafka.server.ReplicaFetcherManager)
Gibt es einen Weg, um es zu zwingen, um die Neuzuweisung Aktion abzuschließen oder abbrechen?
Ich endete mit dem Booten einer anderen Maschine mit der gleichen Broker-ID, um die Neuzuweisung der Partition zu beenden –
das funktioniert ganz gut. Es tut nicht weh, die Broker danach neu zu starten. – k1th