2016-11-08 10 views
0

パーティションのリーダーとレプリカがクラッシュしてノードが回復できないすべてのノードを言うことができます。リーダー-1を持つパーティションを別のブローカーに移動するにはどうすればよいですか?

別のカフカブローカーをそのパーティションのリーダーとして選ぶにはどうすればいいですか? (私はデータの損失で大丈夫です)

"kafka-preferred-replica-election.sh"と "kafka-reassign-partitions.sh"を試しましたが、成功しませんでした。

セットアップ:

  • レプリカ因子1およびパーティション1とブローカID 10および11
  • トピック「テスト」を持つ2つのノードカフカクラスタブローカ11は、トピック「試験」のためのリーダーでありますパーティション0
  • ブローカ11がダウンします。

    bin/kafka-reassign-partitions.sh --zookeeper myvm:2181 --reassignment-json-file manual-assignment.json --execute 
    Partitions reassignment failed due to The proposed assignment contains non-existent partitions: List([test,10]) 
    kafka.common.AdminCommandFailedException: The proposed assignment contains non-existent partitions: List([test,10]) 
        at kafka.admin.ReassignPartitionsCommand$.parseAndValidate(ReassignPartitionsCommand.scala:201) 
        at kafka.admin.ReassignPartitionsCommand$.executeAssignment(ReassignPartitionsCommand.scala:153) 
        at kafka.admin.ReassignPartitionsCommand$.executeAssignment(ReassignPartitionsCommand.scala:149) 
        at kafka.admin.ReassignPartitionsCommand$.main(ReassignPartitionsCommand.scala:46) 
        at kafka.admin.ReassignPartitionsCommand.main(ReassignPartitionsCommand.scala) 
    
    cat manual-assignment.json 
    { 
    "partitions": 
        [ 
        {"topic": "test", "partition": 10, "replicas": [10]} 
        ], 
        "version":1 
    } 
    

    カフカ -

  • カフカバージョンkafka_2.11-0.10.1.0

トピック

Topic:test PartitionCount:1 ReplicationFactor:1 Configs: 
Topic: test Partition: 0 Leader: -1 Replicas: 11 Isr: 

kafka-reassign-partitions.sh出力を説明します-preferred-replica-election.sh

bin/kafka-preferred-replica-election.sh --zookeeper myvm:2181 --path-to-json-file topicPartitionList.json 
[2016-11-08 03:27:01,993] ERROR Skipping preferred replica leader election for partition [test,10] since it doesn't exist (kafka.admin.PreferredReplicaLeaderElectionCommand) 
Successfully started preferred replica election for partitions Set([test,10]) 

cat topicPartitionList.json 
{ 
"partitions": 
    [ 
    {"topic": "test", "partition": 10} 
    ] 
} 

答えて

1

カフカはISRからリーダーを選び、レプリカを割り当てます(不正なリーダー選挙を有効にする場合)。レプリケーションファクタが1に設定されている場合、リーダーブローカがクラッシュした後にISRにブローカが残っていません。新しいリーダーに選ばれる候補者はいませんので、これはデザインのようです。

関連する問題