次の方法で共有


Azure Toolkit for IntelliJ を使用した失敗した Spark ジョブのデバッグ (プレビュー)

この記事では、Azure Toolkit for IntelliJ の HDInsight Tools を使用して Spark Failure Debug アプリケーションを実行する方法に関するステップ バイ ステップ ガイダンスを提供します。

前提条件

デバッグ テンプレートを含むプロジェクトを作成する

このドキュメントでは、失敗したデバッグを続行し、失敗したタスク デバッグのサンプル ファイルを取得するための spark2.3.2 プロジェクトを作成します。

  1. IntelliJ IDEA を開きます。 [新しいプロジェクト] ウィンドウを開きます。

    a. 左側のウィンドウの [Azure Spark/HDInsight] を選択します。

    b. メイン ウィンドウから [Spark Project with Failure Task Debugging Sample(Preview)(Scala)] (失敗したタスク デバッグのサンプルを含む Spark プロジェクト (プレビュー) (Scala)) を選択します。

    Intellij のデバッグ プロジェクトの作成。

    c. [次へ] を選択します。

  2. [New Project](新しいプロジェクト) ウィンドウで、次の手順を実行します。

    Intellij の新しいプロジェクト、Spark バージョンの選択。

    a. プロジェクト名とプロジェクトの場所を入力します。

    b. [Project SDK] (プロジェクト SDK) ドロップダウン リストで、Spark 2.3.2 クラスター用に [Java 1.8] を選択します。

    c. [Spark バージョン] ドロップダウン リストで、 [Spark 2.3.2(Scala 2.11.8)] を選択します。

    d. [完了] を選択します。

  3. [src]>[main]>[scala] を選択してプロジェクトのコードを開きます。 この例では、AgeMean_Div() スクリプトを使用します。

HDInsight クラスター上で Spark Scala/Java アプリケーションを実行する

Spark Scala/Java アプリケーション作成した後、次の手順を実行して、そのアプリケーションを Spark クラスター上で実行します。

  1. [構成の追加] をクリックして [実行/デバッグ構成] ウィンドウを開きます。

    HDI Intellij の構成の追加。

  2. [実行/デバッグ構成] ダイアログ ボックスで、プラス記号 (+) を選択します。 次に [HDInsight での Apache Spark] オプションを選択します。

    Intellij の新規構成の追加。

  3. [Remotely Run in Cluster](クラスターでリモート実行) タブに切り替えます。 [名前][Spark cluster](Spark クラスター)[Main class name](メイン クラス名) に情報を入力します。 ツールでは、Executor を使用したデバッグがサポートされています。 numExecutors の既定値は 5 ですが、3 より大きい値に設定しないことをお勧めします。 実行時間を短縮するために、 [job Configurations] (ジョブ構成)[spark.yarn.maxAppAttempts] を追加し、その値を 1 に設定できます。 [OK] ボタンをクリックして構成を保存します。

    Intellij の実行/デバッグ構成 (新規)。

  4. 指定した名前で構成が保存されます。 構成の詳細を表示するには、構成名を選択します。 変更するには、 [構成の編集] を選択します。

  5. 構成の設定を完了したら、リモート クラスターに対してプロジェクトを実行できます。

    Intellij のリモート Spark ジョブのデバッグ (リモート実行ボタン)。

  6. 出力ウィンドウからアプリケーション ID を確認できます。

    Intellij のリモート Spark ジョブのデバッグ (リモート実行結果)。

失敗したジョブのプロファイルをダウンロードする

ジョブの送信に失敗した場合は、さらにデバッグするために、失敗したジョブのプロファイルをローカル コンピューターにダウンロードできます。

  1. Microsoft Azure Storage Explorer を開き、失敗したジョブに対するクラスターの HDInsight アカウントを見つけて、失敗したジョブのリソースを、対応する場所である \hdp\spark2-events\.spark-failures\<アプリケーション ID> からローカル フォルダーにダウンロードします。[アクティビティ] ウィンドウに、ダウンロードの進捗状況が表示されます。

    Azure Storage Explorer でのダウンロードの失敗。

    Azure Storage Explorer でのダウンロードの成功。

ローカルのデバッグ環境を構成して失敗をデバッグする

  1. 元のプロジェクトを開くか新しいプロジェクトを作成して、元のソース コードに関連付けます。現在、エラー デバッグでは spark2.3.2 バージョンのみがサポートされています。

  2. IntelliJ IDEA で、Spark Failure Debug 構成ファイルを作成し、 [Spark Job Failure Context location] (Spark ジョブの失敗したコンテキストの場所) フィールドで前にダウンロードされた失敗したジョブのリソースから FTD ファイルを選択します。

    失敗構成の作成。

  3. ツールバーのローカル実行ボタンをクリックすると、エラーが [実行] ウィンドウに表示されます。

    run-failure-configuration1。

    run-failure-configuration2。

  4. ログに示されているようにブレークポイントを設定した後、ローカル デバッグ ボタンをクリックして、IntelliJ の通常の Scala/Java プロジェクトと同様にローカル デバッグを実行します。

  5. デバッグの後、プロジェクトが正常に完了した場合は、失敗したジョブを HDInsight クラスター上の Spark に再送信できます。

次のステップ

シナリオ

アプリケーションの作成と実行

ツールと拡張機能

リソースの管理