2016-10-18 14 views
1

カフカクラスターで取得したブローカーIDのリストを知りたい。たとえば、10ノード以上のクラスタでトピックを作成すると、トピック記述コマンドの出力から、それが割り当てられているブローカを見ることができます。カフカクラスターで使用されているFIndブローカーID

./bin/kafka-topics --describe --zookeeper <zkconnect>:2181 --topic rbtest3 

トピックを作成せずにこの情報を収集できますか?

答えて

4

zookeeper cliを使用して、使用されているブローカーIDのリストを取得できます。

zookeeper-3.4.8$ ./bin/zkCli.sh -server zookeeper-1:2181 ls /brokers/ids | tail -1 
[0] 
+0

kafkaバイナリを使って同じ機能を実現できますか? –

+2

Kafkaディストリビューションに含まれているzookeeper-shell.shスクリプトを試すことができますが、非対話モードで動作させることができませんでした。 –

+0

@LucianoAfranllie @jmathewsこんにちは!私はちょうどこれらのコメントに気づいた。私はこれを以下の答えとして投稿しました。 'linux $ ./zookeeper-shell.sh zookeeper-IPaddress:2181 <<<" ls " –

1

yahooによって提供されるオープンソースのツールkafka-managerを使用できます。これは、自分のIDとオフセット始まりとブローカーのすべてを一覧表示します

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic=<your topic> --broker-list=<your broker list> --time=-2

+0

ありがとうございますが、私はコマンドラインに基づいて何かを探しています。 –

1

は、次のコマンドを実行することができます。

+0

私はブローカーのリストをコマンドの出力にしたかったのです。上記のコマンドはブローカリストとトピックを引数として取ります。私が望むのは、クラスタ内で現在利用可能なすべてのブローカをブローカIDのリストとして知ることです。 –

1

また、このようなカフカ分布、と船zookeeper-shell.shスクリプトを使用することができます

linux$ ./zookeeper-shell.sh zookeeper-IPaddress:2181 <<< "ls /brokers/ids"

はちょうどあなたの飼育係サーバーのいずれかのIPアドレスを追加する(および/または同じサーバー上で複数のZookeeperインスタンスを実行する場合など、必要に応じてポートを変更します。

この方法は、たとえば、あなたがKafkaクライアントを排他的に実行しているコンテナ(Docker、LXCなど)の中にいる場合に便利です。しかし、飼い葉桶自体はどこか他の場所にあります(例えば、別の容器に)。

私はそれが役に立ちそうです。 = :)

関連する問題