6.3.6. ZooKeeper クラスターのスケールアップ
この手順では、サーバー(ノード)を ZooKeeper クラスターに追加する方法を説明します。ZooKeeper の動的再設定機能は、スケールアッププロセスで安定した ZooKeeper クラスターを維持します。
前提条件
-
動的再設定は、ZooKeeper 設定ファイル(
reconfigEnabled=true
)で有効になっています。 - ZooKeeper 認証が有効になり、認証メカニズムを使用して新しいサーバーにアクセスできます。
手順
各 ZooKeeper サーバーに対して、1 つずつ以下の手順を実行します。
- 「マルチノードの ZooKeeper クラスターの実行」 の説明どおりにサーバーを ZooKeeper クラスターに追加し、ZooKeeper を起動します。
- 新しいサーバーの IP アドレスおよび設定アクセスポートを書き留めます。
サーバーの
zookeeper-shell
セッションを開始します。クラスターにアクセスできるマシンから以下のコマンドを実行します(アクセスがある場合、ZooKeeper ノードまたはローカルマシンのいずれかになります)。su - kafka /opt/kafka/bin/zookeeper-shell.sh <ip-address>:<zk-port>
シェルセッションで以下の行を入力し、新しいサーバーを投票メンバーとしてクォーラムに追加します。
reconfig -add server.<positive-id> = <address1>:<port1>:<port2>[:role];[<client-port-address>:]<client-port>
以下に例を示します。
reconfig -add server.4=172.17.0.4:2888:3888:participant;172.17.0.4:2181
<positive-id>
は新しいサーバー ID4
に置き換えます。2 つのポートの場合、
<port1>
2888 は ZooKeeper サーバー間の通信用で、<port2>
3888 はリーダー選択用です。新しい設定は ZooKeeper クラスターの他のサーバーに伝播されます。新しいサーバーはクォーラムの完全メンバーになります。
- 追加する他のサーバーに対して、ステップ 1-4 を繰り返します。
その他のリソース