目次

Search

  1. はじめに
  2. 詳細クラスタ
  3. AWSの設定
  4. Google Cloudの設定
  5. Microsoft Azureの設定
  6. セルフサービスクラスタの設定
  7. ローカルクラスタの設定
  8. 詳細設定
  9. トラブルシューティング
  10. 付録 A: コマンドリファレンス

詳細クラスタ

詳細クラスタ

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

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

ジョブが失敗しましたが、表示できるログがたくさんあります。どこから始めればよいですか。
次の順序でログを調べて、ジョブのトラブルシューティングを行います。
  1. 実行プラン。ジョブのScalaコードをデバッグします。
  2. セッションログ。ジョブのコンパイルとSpark実行ワークフローの生成を行うロジックをデバッグします。
  3. エージェントジョブログ。Secure AgentがSpark実行ワークフローを処理するために
    詳細クラスタ
    にプッシュする方法をデバッグします。
  4. Sparkドライバおよびエグゼキュータログ。
    詳細クラスタ
    がジョブを実行する方法をデバッグします。
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. エージェントジョブログでSparkドライバポッドの名前を検索します。例えば、次のメッセージに、Sparkドライバポッドの名前があります。
    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
  2. Sparkドライバポッドが存在することを確認します。ドライバポッドが削除された場合、Sparkドライバログを取得できません。
    ドライバポッドが存在することを確認するには、Secure Agentマシンの次のディレクトリに移動します。
    <Secure Agent installation directory>/apps/At_Scale_Server/<version>/mercury/services/shared/kubernetes/kubernetes_1.21/bin
    そのディレクトリで、以下のコマンドを実行します。
    ./kubectl get pods
  3. 次のいずれかの方法で、クラスタインスタンスIDを検索します。
    • セッションログでクラスタインスタンスIDを探します。例えば、表示される可能性のあるメッセージには次のようなものがあります。
      2019/05/07 16:22:00.20 : INFO :[SPARK_2005] Uploading the local file in the path [/export/home/builds/ws/yxiao_hadoopvm_ML/Mercury/platformdiscale/main/components/cluster/hadoop-tests/cats/edtm/spark/./target/hadoop3a0b1db6-76ea-4317-8272-5b3a8dfd2171_InfaSpark0/log4j_infa_spark.properties] to the following shared storage location: [s3a://soki-k8s-local-state-store/k8s-infa/testcluster2.k8s.local/staging/sess4280021555102778947/log4j_infa_spark.properties].
      メッセージに表示される次のクラウドストレージの場所に注意してください。
      s3a://soki-k8s-local-state-store/k8s-infa/testcluster2.k8s.local/staging/
      クラスタインスタンスIDは「k8s-infa」の後に続くエントリです。この場合、IDはtestcluster2.k8s.localです。
    • ccs-operation.log
      ファイルでクラスタインスタンスIDを探します。ファイルはSecure Agentマシンの次のディレクトリにあります。
      <Secure Agent installation directory>/apps/At_Scale_Server/<version>/ccs_home/
  4. Secure Agentマシンにエージェントを開始したsudoユーザーとしてログインします。
  5. Secure Agentマシンの環境変数KUBECONFIGに次の値を設定します。
    <Secure Agent installation directory>/apps/At_Scale_Server/<version>/ccs_home/<cluster ID>/.kube/kubeconfig.yaml
  6. Sparkドライバログを取得するには、Secure Agentマシンの次のディレクトリに移動します。
    <Secure Agent installation directory>/apps/At_Scale_Server/<version>/mercury/services/shared/kubernetes/kubernetes_1.21/bin
    そのディレクトリで、以下のコマンドを実行します。
    ./kubectl logs <Spark driver pod name>