次の方法で共有


HDInsight on AKS 上の Apache Flink アプリケーション モード クラスター

Note

Azure HDInsight on AKS は 2025 年 1 月 31 日に廃止されます。 2025 年 1 月 31 日より前に、ワークロードを Microsoft Fabric または同等の Azure 製品に移行することで、ワークロードの突然の終了を回避する必要があります。 サブスクリプション上に残っているクラスターは停止され、ホストから削除されることになります。

提供終了日までは基本サポートのみが利用できます。

重要

現在、この機能はプレビュー段階にあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加の使用条件」に記載されています。 この特定のプレビューについては、「Microsoft HDInsight on AKS のプレビュー情報」を参照してください。 質問や機能の提案については、詳細を記載した要求を AskHDInsight で送信してください。また、その他の更新については、Azure HDInsight コミュニティのフォローをお願いいたします。

HDInsight on AKS で Flink アプリケーション モード クラスターが提供されるようになりました。 このクラスターを使用すると、使いやすいインターフェイスと Azure Resource Management Rest API を備えた Azure portal を使用して、クラスター Flink アプリケーション モードのライフサイクルを管理できます。 アプリケーション モード クラスターは、専用リソースを使用して大規模で実行時間の長いジョブをサポートし、リソースを大量に消費するタスクや広範なデータ処理タスクを処理するように設計されています。

このデプロイ モードを使用すると、特定の Flink アプリケーションに専用リソースを割り当てることができるため、アプリケーションで大規模なワークロードを効果的に処理するための十分なコンピューティング能力とメモリが確保されます。 

Flink アプリケーション ウィンドウとジョブ マネージャー ウィンドウの関係を示す図。

長所

  • ジョブ jar によるクラスターのデプロイの簡略化。

  • ユーザー フレンドリな REST API: HDInsight on AKS には、Update、Savepoint、Cancel、Delete など、アプリ モードのジョブ操作を管理するためのユーザー フレンドリな ARM REST API が用意されています。

  • 簡単なジョブ更新の管理と状態管理: Azure portal とのネイティブ統合により、ジョブの更新や、最後に保存された状態 (セーブポイント) へのジョブの復元を、手間をかけずに行うことができるエクスペリエンスが提供されます。 この機能により、ジョブのライフサイクル全体にわたって継続性とデータ整合性が確保されます。

  • Azure Pipelines や他の CI/CD ツールを使用した Flink ジョブの自動化: HDInsight on AKS を使用すると、Flink ユーザーは、ユーザー フレンドリな ARM REST API にアクセスでき、Flink ジョブ操作を Azure Pipelines や他の CI/CD ツールにシームレスに統合できます。

主要な機能

  • セーブポイントを使用したジョブの停止と開始: ユーザーは、Flink AppMode ジョブを適切に停止し、以前の状態 (セーブポイント) から開始できます。 セーブポイントを使用すると、ジョブの進行状況が確実に維持され、シームレスに再開できます。

  • ジョブの更新: ユーザーは、ストレージ アカウント上の jar を更新した後、実行中の AppMode ジョブを更新できます。 この更新により、セーブポイントが自動的に取得され、新しい jar で AppMode ジョブが開始されます。

  • ステートレス更新: AppMode ジョブの新しい再起動の実行が、ステートレス更新によって簡略化されます。 この機能により、ユーザーは更新されたジョブ jar を使用してクリーンな再起動を開始できます。

  • セーブポイント管理: ユーザーはいつでも、実行中のジョブのセーブポイントを作成できます。 これらのセーブポイントを一覧表示し、必要に応じて特定のチェックポイントからジョブを再開するときに使用できます。

  • キャンセル: ジョブを完全に取り消します。

  • 削除: AppMode ジョブを削除します。

前提条件

以下のセクションの前提条件を満たします。

  • サブスクリプションの前提条件。

  • リソースの前提条件。

  • クラスター プールを作成する。

  • ストレージ アカウントにジョブ jar を追加する。

    Flink アプリ モード クラスターを設定する前に、いくつかの準備手順が必要です。 これらの手順の 1 つとして、クラスターのストレージ アカウントにアプリ モード ジョブ JAR を配置することがあります。

  • アプリ モード ジョブ JAR 用のディレクトリを作成する:

    専用コンテナー内に、アプリ モード ジョブ JAR ファイルをアップロードするディレクトリを作成します。 このディレクトリは、Flink クラスターまたはジョブのクラスパスに含める JAR ファイルを格納する場所として機能します。

  • セーブポイント ディレクトリ (省略可能):

    ユーザーがジョブの実行中にセーブポイントを取得する場合は、これらのセーブポイントを保存するための別のディレクトリをストレージ アカウント内に作成します。 このディレクトリは、チェックポイント データとセーブポイントのメタデータを格納するために使用されます。

  • ディレクトリ構造の例:

    セーブポイント ディレクトリの構造を示す図。

クラスター プールのデプロイが完了したら、Flink AppMode クラスターを作成できます。既存のクラスター プールを使用して開始する場合の手順について説明します。

  1. Azure portal に「HDInsight クラスター プール/HDInsight/HDInsight on AKS」と入力し、Azure HDInsight on AKS クラスター プールを選択してクラスター プール ページに移動します。 HDInsight on AKS クラスター プール ページで、新しい Flink クラスターを作成するクラスター プールを選択します。

    クラスター プール ページを示すスクリーンショット。

  2. 特定のクラスター プール ページで、[+ 新しいクラスター] をクリックし、次の情報を指定します。

    プロパティ 説明
    サブスクリプション このフィールドには、クラスター プールに登録された Azure サブスクリプションが自動的に設定されます。
    リソース グループ このフィールドは自動的に設定され、クラスター プール上のリソース グループが表示されます。
    リージョン このフィールドは自動的に設定され、クラスター プールで選択されたリージョンが表示されます。
    クラスター プール このフィールドは自動的に設定され、クラスターが現在作成されているクラスター プール名が表示されます。 別のプールにクラスターを作成するには、ポータルでそのクラスター プールを見つけて、[+ 新しいクラスター] をクリックします。
    HDInsight on AKS プール バージョン このフィールドは自動的に設定され、クラスターが現在作成されているクラスター プールのバージョンが表示されます。
    HDInsight on AKS バージョン 新しいクラスターの HDInsight on AKS のマイナー バージョンまたはパッチ バージョンを選択します。
    クラスターの種類 ドロップダウン リストから、Flink を選択します。
    クラスター名 新しいクラスターの名前を入力します。
    ユーザー割り当てマネージド ID ドロップダウン リストから、クラスターで使用するマネージド ID を選択します。 マネージド サービス ID (MSI) の所有者であり、MSI にクラスター上のマネージド ID オペレーター ロールがない場合は、ボックスの下のリンクをクリックして、AKS agentpool MSI から必要なアクセス許可を割り当てます。 MSI に既に適切なアクセス許可がある場合、リンクは表示されません。 MSI に必要なその他のロールの割り当てについては、前提条件を参照してください。
    ストレージ アカウント ドロップダウン リストから、Flink クラスターに関連付けるストレージ アカウントを選択し、コンテナー名を指定します。 マネージド ID には、クラスターの作成時に 'ストレージ BLOB データ所有者' ロールを使用して、指定されたストレージ アカウントへのアクセスがさらに許可されます。
    仮想ネットワーク クラスターの仮想ネットワーク。
    Subnet クラスターの仮想サブネット。
  3. Flink SQL の Hive カタログの有効化:

    プロパティ 説明
    Hive カタログの使用 外部 Hive メタストアを使用するには、このオプションを有効にします。
    Hive 用の SQL データベース ドロップダウン リストから、hive-metastore テーブルを追加する SQL データベースを選択します。
    SQL 管理ユーザー名 SQL Server 管理者ユーザー名を入力します。 このアカウントは、メタストアが SQL データベースと通信するために使用されます。
    Key Vault ドロップダウン リストから、SQL Server 管理者ユーザー名のパスワードを含むシークレットが含まれる Key Vault を選択します。 クラスターの作成に使用されている MSI に対するキーのアクセス許可、シークレットのアクセス許可、証明書のアクセス許可など、必要なすべてのアクセス許可を含むアクセス ポリシーを設定する必要があります。 MSI には、Key Vault 管理者ロールが必要です。 IAM を使用して必要なアクセス許可を追加します。
    SQL パスワード シークレット名 SQL データベースのパスワードが格納されている Key Vault からシークレット名を入力します。

    Apache Flink のクラスター作成ページを示すスクリーンショット。

    Note

    既定では、クラスターの作成時に使用されるストレージ アカウントおよびコンテナーと同じ Hive カタログ用のストレージ アカウントを使用します。

  4. [次へ: 構成] を選択して続行します。

  5. [構成] ページで、次の情報を指定します。

    プロパティ 説明
    ノード サイズ ヘッド ノードとワーカー ノードの両方の Flink ノードに使用するノード サイズを選択します。
    ノードの数 Flink クラスターのノードの数を選択します。既定では、ヘッド ノードは 2 です。 ワーカー ノードのサイズ設定は、Flink のタスク マネージャー構成を決定するために役立ちます。 ジョブ マネージャーと履歴サーバーはヘッド ノード上にあります。
  6. [デプロイ] セクションで、[アプリケーション モード] としてデプロイの種類を選択して、次の情報を指定します。

    プロパティ 説明
    Jar のパス ジョブ jar の ABFS (ストレージ) パスを指定します。 たとえば、abfs://flink@teststorage.dfs.core.windows.net/appmode/job.jar のように指定します。
    エントリ クラス (省略可能) アプリケーション モード クラスターのメイン クラス。 例: com.microsoft.testjob
    引数 (省略可能) ジョブのメイン クラスの引数。
    Save point name ジョブを起動するために使用する古いセーブポイントの名前
    アップグレード モード 既定のアップグレード オプションを選択します。 このオプションは、クラスターのメジャー バージョン アップグレードが行われるときに使用されます。 次の 3 つのオプションを使用できます。 UPDATE: ユーザーがアップグレード後に最後のセーブポイントから復旧する場合に使用されます。 STATELESS_UPDATE: ユーザーがアップグレード後にジョブの新しい再起動を実行する場合に使用されます。 LAST_STATE_UPDATE: ユーザーがアップグレード後に最後のチェックポイントからジョブを復旧する場合に使用されます
    Flink ジョブの構成 Flink ジョブに必要な他の構成を追加します。
  7. [ジョブ ログの集計] をオンにします。 ジョブ ログをリモート ストレージにアップロードする場合は、チェック ボックスをオンにします。 これは、ジョブに関する問題のデバッグに役立ちます。 ジョブ ログの既定の場所は、'StorageAccount/Container/DeploymentId/logs' です。 既定のログ ディレクトリを変更するには、"pipeline.remote.log.dir" を構成します。 ログ収集の既定の間隔は、600 秒です。ユーザーは、"pipeline.log.aggregation.interval" を構成して変更することができます。

  8. [サービス構成] セクションで、次の情報を指定します。

    プロパティ 説明
    タスク マネージャー CPU Integer。 タスク マネージャー CPU のサイズを (コア単位で) 入力します。
    タスク マネージャーのメモリ (MB 単位) タスク マネージャーのメモリ サイズを MB 単位で入力します。 最小 1,800 MB。
    ジョブ マネージャー CPU Integer。 ジョブ マネージャーの CPU の数を (コア単位で) 入力します。
    ジョブ マネージャーのメモリ (MB 単位) メモリ サイズを MB 単位で入力します。 最小 1,800 MB。
    履歴サーバー CPU Integer。 ジョブ マネージャーの CPU の数を (コア単位で) 入力します。
    履歴サーバーのメモリ (MB 単位) メモリ サイズを MB 単位で入力します。 最小 1,800 MB。

    Apache Flink のクラスター作成タブを示すスクリーンショット。

  9. [次へ: 統合] ボタンをクリックして、次のページに進みます。

  10. [統合] ページで、次の情報を指定します。

    プロパティ 説明
    Log Analytics この機能は、クラスター プールに Log Analytics ワークスペースが関連付けられている場合にのみ使用でき、有効にすると、収集するログを選択できます。
    Azure Prometheus この機能は、メトリックとログを Azure Monitor ワークスペースに送信することで、クラスターで分析情報とログを直接表示するためのものです。

    Apache Flink のクラスター統合の作成タブを示すスクリーンショット。

  11. [次へ: タグ] ボタンをクリックして、次のページに進みます。

  12. [タグ] ページで、次の情報を指定します。

    プロパティ 内容
    名前 省略可能。 クラスター リソースに関連付けられているすべてのリソースを簡単に識別するために、HDInsight on AKS などの名前を入力します。
    空白のままにできます。
    リソース [すべてのリソースを選択する] を選択します。
  13. [次へ: 確認と作成] を選択して続行します。

  14. [確認と作成] ページで、ページの上部にある "検証が成功しました" というメッセージを探し、[作成] をクリックします。

クラスターが作成されている間、[デプロイの処理中] ページが表示されます。 クラスターの作成には 5 分から 10 分かかります。 クラスターが作成されると、[デプロイが完了しました] というメッセージが表示されます。 ページから移動する場合は、[通知] で現在の状態を確認できます。

ポータルからアプリケーション ジョブを管理する

HDInsight on AKS には、Flink ジョブを管理する方法が用意されています。 失敗したジョブを再起動できます。 ポータルからジョブを再起動します。

Flink ジョブをポータルから実行するには、次の順序で移動します。

ポータル > [HDInsight on AKS クラスター プール] > [Flink クラスター] > [設定] > [Flink ジョブ]。

実行中の Apache Flink ジョブを示すスクリーンショット。

  • 停止: ジョブの停止には、パラメーターは必要ありません。 ユーザーは、アクションを選択してジョブを停止できます。 ジョブが停止すると、ポータルのジョブの状態が "停止済み" になります。

  • 開始: ジョブをセーブポイントから開始します。 ジョブを開始するには、停止したジョブを選択し、開始します。

  • 更新: 更新は、更新されたジョブ コードを使用してジョブを再起動するのに役立ちます。 ユーザーは、保存場所で最新のジョブ jar を更新し、ポータルからジョブを更新する必要があります。 このアクションにより、ジョブはセーブポイントを使用して停止され、最新の jar で再開されます。

  • ステートレス更新: ステートレスは更新に似ていますが、最新のコードを使用してジョブの新しい再起動を実行する必要があります。 ジョブが更新されると、ポータルのジョブの状態は 実行中になります。

  • セーブポイント: Flink ジョブのセーブポイントを取得します。

  • キャンセル: ジョブを終了します。

  • 削除: AppMode クラスターを削除します。

  • ジョブの詳細の表示: ユーザーは、ジョブ名をクリックすると、ジョブの詳細を表示できます。これにより、ジョブに関する詳細と最後のアクションの結果が表示されます。

    JSON ビューを示すスクリーンショット。

アクションが失敗した場合、この JSON ビューに、失敗の例外と理由の詳細が表示されます。