MaxCompute で Spark ジョブを送信した後、MaxCompute が提供する LogView ツールまたは Spark Web UI を使用してジョブのログを取得し、ジョブが想定どおりに送信および実行されているかどうかを確認できます。
背景情報
MaxCompute で spark-submit を使用して Spark ジョブを送信すると、MaxCompute はインスタンスを作成し、ログにインスタンスの LogView URL とトラッキング URL を表示します。 LogView URL またはトラッキング URL に基づいてジョブのステータスを追跡できます。 DataWorks を使用して Spark ジョブを実行する場合にもログが生成されます。
logview.odps.aliyun.comで始まる URL は LogView URL です。 LogView は、MaxCompute 用に開発された分散ジョブトラッキングツールです。トラッキング URL: Spark Web UI にアクセスできる URL です。
次のセクションでは、インスタンスの LogView URL とトラッキング URL を表示する方法の例を示します。
ジョブを送信します。
説明MaxCompute 上の Spark は、ローカルモード、クラスタモード、DataWorks 実行モードの 3 つの動作モードをサポートしています。ビジネス要件に基づいて適切な 実行モード を選択できます。
cd $SPARK_HOME bin/spark-submit --master yarn-cluster --class SparkPi /tmp/spark-2.x-demo/target/AliSpark-2.x-quickstart-1.0-SNAPSHOT-shaded.jarインスタンスログを表示します。
19/01/05 20:36:47 INFO YarnClientImplUtil: logview url: http://logview.odps.aliyun.com/logview/?h=http://service.cn.maxcompute.aliyun.com/api&p=qn_beijing&i=xxx&token=xxx <以下の出力が返された場合、操作は成功です。その他のログ情報も表示される場合があります。> 19/01/05 20:37:34 INFO Client: client token: N/A diagnostics: N/A ApplicationMaster host: 11.220.xxx.xxx ApplicationMaster RPC port: 30002 queue: queue start time: 1546691807945 final status: SUCCEEDED tracking URL: http://jobview.odps.aliyun.com/proxyview/jobview/?h=http://service.cn.maxcompute.aliyun-inc.com/api&p=project_name&i=xxx&t=spark&id=application_xxx&metaname=xxx&token=xxx
LogView を使用してジョブの診断を実行する
logview.odps.aliyun.com で始まる URL は、LogView URL です。 LogView は、MaxCompute 用に開発された分散ジョブトラッキングツールです。 LogView を使用して、次の操作を実行できます。
ジョブのステータスを取得します。
ジョブ内の各ノードの起動、終了、およびスケジューリング情報を取得します。
ジョブ内の各ノードの標準入力ログと標準出力ログを取得します。 Spark 出力は stdout に書き込むことをお勧めします。 デフォルトでは、Spark log4j ログは stderr に書き込まれます。
実行ログデータを保存します。 データは 3 ~ 5 日間保持されます。 ローカルディスクがいっぱいになると、stdout ログと stderr ログはクリアされます。
ブラウザのアドレスバーに LogView URL を入力し、CUPID タイプのジョブの実行情報を表示します。

表示されたページで、次の手順を実行します。
[詳細] をクリックして、ジョブの詳細を表示します。 master-0 は、Spark Driver が存在するノードを示します。
[master-0] をクリックし、[すべてのタブ] を選択して、ノードに関する情報を表示します。
[StdOut] をクリックして、ノードの出力を表示します。
[StdErr] をクリックして、ノードの log4j ログを表示します。
Spark Web UI を使用してジョブの診断を実行する
ジョブのログにトラッキング URL が生成されている場合、ジョブは MaxCompute に送信されます。 トラッキング URL を使用して、Spark Web UI または History Server にアクセスできます。 Spark Web UI を使用して、次の操作を実行できます。
ネイティブ Spark Web UI に関する情報を取得します。
実行中のジョブに関する情報をリアルタイムで表示します。
ジョブの完了後に、Spark Driver から History Server にイベントを転送します。 このプロセスは完了するまでに 1 ~ 3 分かかる場合があります。 ジョブの完了直後にトラッキング URL を開くと、
Application application_1560240626712_2078769635 not found.エラーメッセージが返される場合があります。 エラーメッセージが返された場合は、後でもう一度お試しください。
ブラウザのアドレスバーにトラッキング URL を入力し、Spark ジョブの実行情報を表示します。

表示されたページで、次の手順を実行します。
[環境] タブをクリックして、Spark ジョブのパラメータが正しく構成されているかどうかを確認します。
[Executor] タブをクリックして、デッドノードが存在するかどうか、および Spark Driver の stdout ログと stderr ログが生成されているかどうかを確認します。
[stdout] をクリックして、ノードの出力を表示します。
[stderr] をクリックして、ノードの log4j ログを表示します。