Kafka クラスターが拡大するにつれて、ブローカー間のパーティション負荷が不均一になる場合があります。一部のブローカーでは、他のブローカーよりも大幅に多いトラフィックを処理することになります。Cruise Control は、ブローカー負荷を継続的にモニタリングし、異常を検出し、手動による分析を必要とせずに負荷バランスを回復できるよう、パーティションのリバランス提案を自動生成することで、この課題に対応します。本トピックでは、E-MapReduce (EMR) Kafka クラスター上で Cruise Control を有効化および起動する手順について説明します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Kafka サービスが選択された状態で作成された、EMR V3.42.0 以降の EMR Dataflow クラスター。詳細については、「Dataflow Kafka クラスターの作成」をご参照ください。
EMR on ECS コンソールへのアクセス権限およびクラスターへの SSH アクセス権限。
背景情報
Cruise Control は、EMR Kafka クラスターの Kafka ランタイムコンポーネントにプリインストール済みです。Kafka ランタイムコンポーネントがインストールされている任意のノードで実行可能です。ただし、ブローカーのリソースとの競合を避けるため、ブローカーではないノード(非ブローカーノード)で実行することを推奨します。本トピックでは、Cruise Control サービスノードとして master-1-1 を使用します。
Cruise Control の有効化および起動
ステップ 1:Kafka サービスの構成ページを開く
トップナビゲーションバーで、クラスターが存在するリージョンを選択し、リソースグループを選択します。
EMR on ECS ページで対象のクラスターを見つけ、[操作] 列の サービス をクリックします。
サービス タブで、Kafka セクションの 構成 をクリックします。
ステップ 2:Cruise Control メトリックレポーターの有効化
メトリックレポーターは、Kafka ブローカーからパフォーマンスデータを収集します。Cruise Control はこのデータを用いてクラスター負荷をモデル化し、リバランス提案を生成します。
構成 タブで、server.properties タブをクリックします。
kafka.cruisecontrol.metric.reporter.enableをtrueに設定します。保存 をクリックします。
表示されるダイアログボックスで、実行理由 フィールドに理由を入力し、保存 をクリックします。
ステップ 3:ブローカーの容量設定の確認および更新
cruisecontrol_capacity.json タブをクリックして、Kafka ブローカーの容量パラメーターを確認します。事前設定値がブローカーの実際のハードウェア仕様と一致しない場合は、続行前に値を更新してください。
ステップ 4:Cruise Control UI アクセスホストの設定
cruisecontrol.properties タブをクリックします。
cruise.control.ui.access.hostを master-1-1 ノードのパブリック IP アドレスに設定します。この IP アドレスを確認するには、EMR コンソールの ノード ページに移動します。保存 をクリックします。
表示されるダイアログボックスで、実行理由 フィールドに理由を入力し、保存 をクリックします。
ステップ 5:Kafka ブローカーの再起動
EMR on ECS ページで、その他 > 再起動 を選択します。
表示されるダイアログボックスで、実行理由 フィールドに理由を入力し、OK をクリックします。
確認 ダイアログボックスで、OK をクリックします。
ステップ 6:Cruise Control の起動
SSH でクラスターにログインし、以下のコマンドを実行して Cruise Control を起動します。
cd $KAFKA_ROOT/cruise-control-current/
./emr-cruise-control-start.shステップ 7:起動の確認
以下のコマンドを実行してログファイルの一覧を表示し、Cruise Control の正常起動を確認します。
ll $LOG_DIR_ROOT/cruise-control成功したスタートアップは、以下と同様の出力を生成します。
-rw-r--r-- 1 kafka hadoop 109095 Jul 20 15:07 kafkacruisecontrol.log
-rw-r--r-- 1 kafka hadoop 0 Jul 20 15:07 kafkacruisecontrol-operation.log
-rw-r--r-- 1 kafka hadoop 87452 Jul 20 15:07 kafka-cruise-control.out
-rw-r--r-- 1 kafka hadoop 0 Jul 20 15:07 kafkacruisecontrol-request.logステップ 8:Cruise Control へのアクセス
Cruise Control には、Web UI または REST API を通じてアクセスできます。
Web UI:ブラウザで
http://<master-1-1 ノードのパブリック IP アドレス>:9090/を開きます。重要Web UI にアクセスする前に、クラスターのセキュリティグループにポート 9090 のルールを追加してください。詳細については、「セキュリティグループルールの追加」をご参照ください。
REST API:「Cruise Control REST API リファレンス」をご参照ください。