トラブルシューティング > トラブルシューティング > 詳細クラスタサブタスクのトラブルシューティング
  

詳細クラスタサブタスクのトラブルシューティング

ジョブが失敗しましたが、表示できるログがたくさんあります。どこから始めればよいですか。
次の順序でログを調べて、ジョブのトラブルシューティングを行います。
  1. 1実行プラン。ジョブのScalaコードをデバッグします。
  2. 2セッションログ。ジョブのコンパイルとSpark実行ワークフローの生成を行うロジックをデバッグします。
  3. 3エージェントジョブログ。Secure AgentがSpark実行ワークフローを処理するために詳細クラスタにプッシュする方法をデバッグします。
  4. 4Sparkドライバおよびエグゼキュータログ。詳細クラスタがジョブを実行する方法をデバッグします。
Monitorで、実行プラン、セッションログ、エージェントジョブログ、およびSparkドライバログをダウンロードできます。
Spark実行ログを見つけるには、失敗した特定のSparkタスクの詳細ログの場所をコピーします。次に、クラウドプラットフォームのログの場所に移動し、ログをダウンロードします。
失敗したジョブのログファイルが一部見つかりません。Monitorとクラウドプラットフォームのログの場所の両方からログをダウンロードしようとした。
ジョブに対して生成されるログは、処理中にジョブが失敗したステップによって異なります。
例えば、詳細クラスタにプッシュされる前にジョブが失敗した場合、Sparkドライバおよびエグゼキュータログはログの場所に生成されず、Monitorがクラウドプラットフォームからログをクエリすることもできません。
一部のログファイルはリカバリできますが、ジョブをトラブルシューティングするには、別のタイプのログを使用する必要がある場合があります。
SparkドライバおよびSparkエグゼキュータログが見つかりません。これらをリカバリできますか。
Sparkドライバログをユーザーインタフェースからダウンロードできない場合、Sparkドライバポッドを使用してログをリカバリできます。Sparkエグゼキュータログはリカバリできません。
ジョブを詳細クラスタにプッシュするとき、Secure Agentは1つのSparkドライバポッドと複数のSparkエグゼキュータポッドを作成してSparkタスクを実行します。Sparkドライバポッドを使用してSparkドライバログをリカバリできますが、Sparkエグゼキュータログはリカバリできません。Sparkドライバポッドは、ジョブが成功または失敗した直後にSparkエグゼキュータポッドを削除します。
注: ジョブが成功または失敗したとき、Sparkドライバポッドはデフォルトでは5分後に削除されます。トラブルシューティングの支援のためにこの上限を増やす必要がある場合は、Informaticaグローバルカスタマサポートにお問い合わせください。
Sparkドライバログをリカバリするには、次のタスクを実行します。
  1. 1エージェントジョブログでSparkドライバポッドの名前を検索します。例えば、次のメッセージに、Sparkドライバポッドの名前があります。
  2. 2019/04/09 11:10:15.511 : INFO :Spark driver pod [spark-passthroughparquetmapping-veryvery-longlongname-1234567789-infaspark02843891945120475434-driver] was successfully submitted to the cluster.
    Monitorでエージェントジョブログをダウンロードできない場合、ログはSecure Agentマシンの次のディレクトリで入手できます。
    <Secure Agent installation directory>/apps/At_Scale_Server/<version>/logs/job-logs/
    エージェントジョブログのファイル名は、AgentLog-<Spark job ID>.logの形式を使用します。SparkジョブIDはセッションログで見つける事ができます。例えば、セッションログの次のメッセージで、SparkジョブIDは0c2c5f47-5f0b-43af-a867-da011452c19dInfaSpark0です。
    2019-05-09T03:07:52.129+00:00 <LdtmWorkflowTask-pool-1-thread-9> INFO: Registered job to status checker with Id 0c2c5f47-5f0b-43af-a867-da011452c19dInfaSpark0
  3. 2Sparkドライバポッドが存在することを確認します。ドライバポッドが削除された場合、Sparkドライバログを取得できません。
  4. ドライバポッドが存在することを確認するには、Secure Agentマシンの次のディレクトリに移動します。
    <Secure Agent installation directory>/apps/At_Scale_Server/<version>/mercury/services/shared/kubernetes/kubernetes_<version>/bin
    そのディレクトリで、以下のコマンドを実行します。
    ./kubectl get pods
  5. 3次のいずれかの方法で、クラスタインスタンスIDを検索します。
  6. 4Secure Agentマシンにエージェントを開始したsudoユーザーとしてログインします。
  7. 5Secure Agentマシンの環境変数KUBECONFIGに次の値を設定します。
  8. <Secure Agent installation directory>/apps/At_Scale_Server/<version>/ccs_home/<cluster ID>/.kube/kubeconfig.yaml
  9. 6Sparkドライバログを取得するには、Secure Agentマシンの次のディレクトリに移動します。
  10. <Secure Agent installation directory>/apps/At_Scale_Server/<version>/mercury/services/shared/kubernetes/kubernetes_<version>/bin
    そのディレクトリで、以下のコマンドを実行します。
    ./kubectl logs <Spark driver pod name>