本番環境のキーによるkafkaクラスタの作成


この間、会社のkafkaクラスタが故障し、準備不足のため、慌てて処理していました.例えば、kafkaのクラスタにはtopicの数が多く、各topicのパーティション数とコピーの数が異なるため、順番にキューを作成すれば、クラスタが回復するとキュウリ料理が冷めてしまうと推定されます.
kafkaクラスタに障害が発生した場合、最も速い処理方法は、クラスタを再構築し、新しいクラスタでキュー関連情報をすべて元のクラスタで再構築することです.私は端午の节句の休暇を利用して、pythonの脚本を书いて(これは2回目のpythonで、使えばいいですが、皆さんはあまり高くしないでください)、1つの机能を実现することができます.
    1.まず、このスクリプト(topic.py)をkafkaのbinディレクトリの下に置きます.
    2.python topicを実行します.pyコマンド
    3.元のクラスタのzookeeperアドレスを入力し、車に戻る
    4.新しいクラスタのzookeeperアドレスを入力して、車に戻ります
    5.コンソールはtopic作成に関する情報を出力し、新しいクラスタをチェックすると、古いクラスタ内のすべてのtopicがそのまま新しいクラスタに再作成されていることがわかります.
    topic.pyスクリプトは次のとおりです.
import os
from sys import stdin
import re

print 'input source kafka zookeeper address. eg:127.0.0.1:2181'
value = stdin.readline().replace("
", "") print 'input target kafka zookeeper address. eg:127.0.0.1:2181' target = stdin.readline().replace("
","") value2 = './kafka-topics.sh --describe --zookeeper ' +value value2 = value2+' | grep ^Topic' output = os.popen(value2) text = output.readline() while (text ): strs = text.split() outtemp = os.popen('./kafka-topics.sh --create --topic '+strs[0].replace("Topic:","") +' --partitions '+strs[1].replace("PartitionCount:","") + ' --replication-factor ' +strs[2].replace("ReplicationFactor:","")+ ' --if-not-exists --zookeeper ' + target) print outtemp.readline() text = output.readline() outtemp.close() output.close()

  
    
転載先:https://www.cnblogs.com/mantu/p/9215661.html