4.2. マルチノードの Kafka クラスターの実行
Kafka をマルチノードクラスターとして設定し、実行します。
前提条件
- Streams for Apache Kafka が 各ホストにインストールされており、設定ファイルが使用可能である。
- ZooKeeper クラスターが 設定され、実行されている。
クラスターの実行
Streams for Apache Kafka クラスター内の各 Kafka ブローカーについて、以下の手順を実行します。
以下のように、Kafka 設定ファイル
/opt/kafka/config/server.properties
を編集します。-
最初のブローカーの
broker.id
フィールドを0
に、2 番目のブローカーを1
に、それぞれ設定します。 -
zookeeper.connect
オプションで ZooKeeper への接続の詳細を設定します。 - Kafka リスナーを設定します。
logs.dir
のディレクトリーに、コミットログが保存されるディレクトリーを設定します。以下は、Kafka ブローカーの設定例です。
broker.id=0 zookeeper.connect=zoo1.my-domain.com:2181,zoo2.my-domain.com:2181,zoo3.my-domain.com:2181 listeners=REPLICATION://:9091,PLAINTEXT://:9092 listener.security.protocol.map=PLAINTEXT:PLAINTEXT,REPLICATION:PLAINTEXT inter.broker.listener.name=REPLICATION log.dirs=/var/lib/kafka
各 Kafka ブローカーが同じハードウェアで実行されている通常のインストールでは、
broker.id
設定プロパティーのみがブローカー設定ごとに異なります。
-
最初のブローカーの
デフォルトの設定ファイルで Kafka ブローカーを起動します。
su - kafka /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Kafka ブローカーが稼働していることを確認します。
jcmd | grep Kafka
戻り値:
process ID kafka.Kafka /opt/kafka/config/server.properties
ncat
ユーティリティーを使用してdump
コマンドを ZooKeeper ノードのいずれかに送信し、すべてのノードが Kafka クラスターのメンバーであることを確認します。ncat dump を使用して、ZooKeeper に登録されているすべての Kafka ブローカーを確認します。
echo dump | ncat zoo1.my-domain.com 2181
dump
のような 4 文字のコマンドを使用するには、zookeeper.properties
で4lw.commands.whitelist=*
を指定する必要があります。出力には、設定および起動したすべての Kafka ブローカーが含まれている必要があります。
3 つのノードで設定される Kafka クラスターの ncat コマンドの出力例
SessionTracker dump: org.apache.zookeeper.server.quorum.LearnerSessionTracker@28848ab9 ephemeral nodes dump: Sessions with Ephemerals (3): 0x20000015dd00000: /brokers/ids/1 0x10000015dc70000: /controller /brokers/ids/0 0x10000015dc70001: /brokers/ids/2