Kafka と Spark アーキテクチャを作成する

完了

Azure HDInsight で Kafka と Spark を併用するには、それらを同じ VNet 内に配置するか、VNet をピアリングして、それらのクラスターが DNS 名前解決を使用して動作するようにする必要があります。

What is a Kafka and Spark architecture

同じ VNet 内にクラスターを作成するには、次の手順に従います。

  1. リソース グループを作成する
  2. リソース グループに VNet を追加する
  3. Kafka クラスターと Spark クラスターを同じ VNet に追加するか、あるいはこれらのサービスが DNS 名前解決を使用して動作する VNet をピアリングします。

HDInsight の Kafka および Spark クラスターを接続するには、ネイティブの Spark - Kafka コネクタを使用することをお勧めします。これにより、Spark クラスターが Kafka クラスター内のデータの個々のパーティションにアクセスできるようになるため、リアルタイム処理ジョブに含まれる並列処理の数が増え、非常に高いスループットが得られます。

両方のクラスターが同じ VNet 内にある場合は、Spark ストリーミング コード内で Kafka ブローカーの FQDN を使用することもできます。また、エンタープライズ セキュリティのために VNet に対し NSG ルールを作成することもできます。

ソリューションのアーキテクチャ

Azure 上でのリアルタイム ストリーミング分析パターンには通常、次のソリューション アーキテクチャが使用されます。

  1. 取り込み: 非構造化または構造化データは、Azure HDInsight 上の Kafka クラスターに取り込まれます。
  2. 準備とトレーニング: データは、HDInsight 上の Spark で準備され、トレーニングされます。
  3. モデル化と提供: データは、Azure Synapse や HDInsight Interactive Query などのデータ ウェアハウスに格納されます。
  4. インテリジェンス: データは、Power BI や Tableau などの分析ダッシュボードに提供されます。
  5. ストア: データは Azure Storage などのコールド ストレージ ソリューションに入れられ、後で配信されます。

A Kafka and Spark solution architecture

サンプル シナリオのアーキテクチャ

次のユニットでは、サンプル アプリケーション用のソリューション アーキテクチャの構築を開始します。 このサンプルでは、Azure Resource Manager テンプレート ファイルを使用して、リソース グループ、VNet、Spark クラスター、Kafka クラスターを作成します。

それらのクラスターがデプロイされたら、いずれかの Kafka ブローカーに SSH で接続し、Python プロデューサー ファイルをヘッド ノードにコピーします。 このプロデューサー ファイルは、10 秒ごとに擬似株価を提供します。また、メッセージのパーティション番号とオフセットをコンソールに書き込みます。

プロデューサーが実行されたら、Jupyter Notebook を Spark クラスターにアップロードできます。 このノートブックで、Spark および Kafka クラスターを接続し、データに対していくつかのサンプル クエリ (イベント ウィンドウ内で株価の高値と安値を検索するなど) を実行します。

A Kafka and Spark example solution architecture