2015-05-28 15 views
5

Sto usando kafka 0.8.2 & uno dei miei server kafka è morto (non c'è modo di recuperare i dati sui dischi). C'è un argomento, con la replica di 1, con una delle partizioni sul server morto. Ho pensato che una riassegnazione avrebbe spostato i metadati per quella partizione in un nuovo server senza aver bisogno dei dati, ma la riassegnazione è rimasta bloccata a in progress.aborting kafka riassegna partizione azione

mi sono imbattuto:

$ /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 

Questo non avrà mai successo dal momento che il server di morti non è mai tornato.

Nel registro del nuovo server, ho visto:

[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) 

C'è un modo per costringerlo a completare o interrompere l'azione riassegnazione?

risposta

2

È possibile interrompere l'assegnazione eliminando il nodo zk "/ admin/reassign_partitions" sul cluster di guardiano di zoo e spostare le partizioni assegnate al broker morto a nuovi nodi.

+4

Ho finito con l'avvio di un'altra macchina con lo stesso ID broker per completare la riassegnazione della partizione –

+0

che funziona abbastanza bene. non fa male riavviare i broker in seguito. – k1th

1

Con kafka 0.8.2.2, solo per confermare la risposta di Foo L, il rilancio di un'altra macchina con lo stesso broker ha risolto il problema.

Mentre noi non abbiamo questa nuova broker con lo stesso broker di id, la migrazione è in pausa, e il comando verify darà sempre la stessa risposta

./bin/kafka-reassign-partitions.sh --zookeeper "$ZK_SERVERS" --broker-list "$BROKERS_ID" --reassignment-json-file reassignment.json --verify

Risultato:

Reassignment of partition [topicName,partitionId] is still in progress

Problemi correlati