次の方法で共有


Apache Kafka ワークロードを Azure HDInsight 4.0 に移行する

Azure HDInsight 4.0 では、パフォーマンス、接続性、セキュリティが大幅に強化された最新のオープンソース コンポーネントが提供されています。 このドキュメントでは、HDInsight 3.6 上の Apache Kafka ワークロードを HDInsight 4.0 に移行する方法について説明します。 ワークロードを HDInsight 4.0 に移行した後は、HDInsight 3.6 では使用できない多くの新機能を使用できます。

HDInsight 3.6 Kafka 移行パス

HDInsight 3.6 では、Kafka の 2 つのバージョン (1.0.0 と 1.1.0) がサポートされています。 HDInsight 4.0 では、バージョン 1.1.0 と 2.1.0 がサポートされています。 Kafka のバージョンと実行する HDInsight のバージョンに応じて、複数の移行パスがサポートされます。 これらのパスを以下に説明し、次の図に示します。

  • 最新バージョンで Kafka と HDInsight の両方を実行する (推奨):HDInsight 3.6 および Kafka 1.0.0 または 1.1.0 アプリケーションを Kafka 2.1.0 (以下のパス D と E) を使用して HDInsight 4.0 に移行します。
  • 最新バージョンで HDInsight を実行しますが、Kafka はより新しいバージョンでのみ実行します。HDInsight 3.6 および Kafka 1.0.0 アプリケーションを Kafka 1.1.0 (以下のパス B) を使用して HDInsight 4.0 に移行します。
  • 最新バージョンで HDInsight を実行し、Kafka バージョンを保持する: HDInsight 3.6 および Kafka 1.1.0 アプリケーションを Kafka 1.1.0 (以下のパス C) を使用して HDInsight 4.0 に移行します。
  • より新しいバージョンで Kafka を実行し、HDInsight バージョンを保持する: Kafka 1.0.0 アプリケーションを 1.1.0 に移行し、HDInsight 3.6 (以下のパス A) に留めます。 このオプションでは、引き続き新しいクラスターをデプロイする必要があることに注意してください。 既存のクラスターでの Kafka バージョンのアップグレードはサポートされていません。 必要なバージョンのクラスターを作成したら、新しいクラスターを使用するように Kafka クライアントを移行します。

3.6 での Apache Kafka のアップグレード パス。

Apache Kafka のバージョン

Kafka 1.1.0

Kafka 1.0.0 から 1.1.0 に移行する場合は、次の新機能を利用できます。

  • Kafka コントローラーの機能強化により、制御されたシャットダウンが高速化されるため、ブローカーを再起動して問題から迅速に復旧できます。
  • FetchRequests ロジックの機能強化により、クラスター上のパーティション (およびより多くのトピック) を増やせるようにしました。
  • Kafka Connect では、トピックの レコード ヘッダー正規表現がサポートされています

更新プログラムの完全な一覧については、 Apache Kafka 1.1 のリリース ノートを参照してください。

Apache Kafka 2.1.0

Kafka 2.1 に移行する場合は、次の機能を利用できます。

  • レプリケーション プロトコルが改善されたため、ブローカーの回復性が向上します。
  • KafkaAdminClient API の新機能。
  • 構成可能なクォータ管理。
  • Zstandard 圧縮のサポート。

更新プログラムの完全な一覧については、 Apache Kafka 2.0 リリース ノートApache Kafka 2.1 リリース ノートを参照してください。

Kafka クライアントの互換性

新しい Kafka ブローカーは、古いクライアントをサポートします。 KIP-35 - プロトコル バージョンの取得 により、Kafka ブローカーと KIP-97 の機能を動的に決定するためのメカニズム が導入されました。Kafka クライアント RPC 互換性ポリシーの改善により 、新しい互換性ポリシーと Java クライアントの保証が導入されました。 以前は、Kafka クライアントは、同じバージョンまたは新しいバージョンのブローカーと対話する必要がありました。 これで、新しいバージョンの Java クライアントと、KIP-35 をサポートする他のクライアント ( librdkafka など) は、古い要求の種類にフォールバックしたり、機能が利用できない場合に適切なエラーをスローしたりできます。

Kafka クライアントの互換性をアップグレードします。

クライアントが古いブローカーをサポートしているわけではないことに注意してください。 詳細については、「 互換性マトリックス」を参照してください。

一般的な移行プロセス

次の移行ガイダンスでは、単一の仮想ネットワークで HDInsight 3.6 にデプロイされた Apache Kafka 1.0.0 または 1.1.0 クラスターを想定しています。 既存のブローカーにはいくつかのトピックがあり、プロデューサーとコンシューマーによって積極的に使用されています。

現在の Kafka 推定環境。

移行を完了するには、次の手順を実行します。

  1. テスト用の新しい HDInsight 4.0 クラスターとクライアントをデプロイします。 新しい HDInsight 4.0 Kafka クラスターをデプロイします。 複数の Kafka クラスター バージョンを選択できる場合は、最新バージョンを選択することをお勧めします。 デプロイ後、必要に応じていくつかのパラメーターを設定し、既存の環境と同じ名前のトピックを作成します。 また、必要に応じて TLS と Bring Your Own-Key (BYOK) 暗号化を設定します。 次に、新しいクラスターで正しく動作するかどうかを確認します。

    新しい HDInsight 4.0 クラスターをデプロイします。

  2. プロデューサー アプリケーションのクラスターを切り替え、すべてのキュー データが現在のコンシューマーによって使用されるまで待ちます。 新しい HDInsight 4.0 Kafka クラスターの準備ができたら、既存のプロデューサーの宛先を新しいクラスターに切り替えます。 既存のコンシューマー アプリが既存のクラスターからすべてのデータを使用するまで、そのままにしておきます。

    プロデューサー アプリのクラスターを切り替えます。

  3. コンシューマー アプリケーションでクラスターを切り替えます。 既存のコンシューマー アプリケーションが既存のクラスターのすべてのデータの使用を完了したことを確認したら、接続を新しいクラスターに切り替えます。

    コンシューマー アプリでクラスターを切り替えます。

  4. 必要に応じて、古いクラスターを削除し、アプリケーションをテストします。 スイッチが完了して正常に動作したら、必要に応じて、古い HDInsight 3.6 Kafka クラスターと、テストで使用されているプロデューサーとコンシューマーを削除します。

次のステップ