7.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>
ZooKeeper ノードが稼働しているシェルセッションで以下の行を入力し、新しいサーバーを投票メンバーとしてクォーラムに追加します。
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 を繰り返します。