Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Athena での Spark アプリケーションイベントをログに記録する

フォーカスモード
Athena での Spark アプリケーションイベントをログに記録する - Amazon Athena

Athena ノートブックエディタでは、Jupyter、Spark、Python の標準ログが可能です。df.show() を使用して PySpark DataFrame のコンテンツを表示したり、print("Output") を使用してセル出力に値を表示したりできます。計算の stdoutstderr、および results 出力は Amazon S3 のクエリ結果バケットの場所に書き込まれます。

Amazon CloudWatch への Spark アプリケーションイベントをログに記録する

Athena セッションでは、使用しているアカウントの Amazon CloudWatch にログを書き込むこともできます。

ログストリームとロググループを理解する

CloudWatch は、ログアクティビティをログストリームとロググループに整理します。

ログストリーム - CloudWatch ログストリーミングは、同じ出典を共有する一連のログイベントです。CloudWatch Logs でのログの各ソースで各ログストリームが構成されます。

ロググループ - CloudWatch ログで、ロググループは保持、モニタリング、アクセス制御について同じ設定を共有するログストリーミングのグループです。

1 つのロググループに属することができるログストリーミングの数に制限はありません。

Athena で初めてノートブックセッションを開始すると、次の例のように、Athena は Spark 対応のワークグループの名前を使用して CloudWatch にロググループを作成します。

/aws-athena/workgroup-name

このロググループは、少なくとも 1 つのログイベントを生成するセッションのエグゼキューターごとに 1 つのログストリームを受け取ります。エグゼキューターとは、ノートブックセッションが Athena にリクエストできる最小の計算単位です。CloudWatch では、ログストリームの名前はセッション ID とエグゼキューター ID で始まります。

CloudWatch ロググループとログストリームの詳細については、Amazon CloudWatch Logs ユーザーガイドの「ロググループとログストリームの操作」を参照してください。

Athena for Spark の標準ロガーオブジェクトを使用する

Athena for Spark セッションでは、次の 2 つのグローバルスタンダードロガーオブジェクトを使用して、Amazon CloudWatch にログを書き込むことができます。

  • athena_user_logger - ログを CloudWatch にのみ送信します。このオブジェクトは、次の例のように、Spark アプリケーションの情報を CloudWatch に直接ログ記録する場合に使用します。

    athena_user_logger.info("CloudWatch log line.")

    この例では、次のようにログイベントを CloudWatch に書き込みます。

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: CloudWatch log line.
  • athena_shared_logger - 同じログをサポート目的で CloudWatch および AWS と両方に送信します。このオブジェクトを使用して、次の例のように、トラブルシューティングのために AWS サービスチームとログを共有できます。

    athena_shared_logger.info("Customer debug line.") var = [...some variable holding customer data...] athena_shared_logger.info(var)

    この例では、debug の行と var の変数の値を CloudWatch Logs に記録し、各行のコピーを Support に送信します。

    注記

    プライバシー保護のため、計算コードと結果は AWS と共有されません。Support に表示する情報のみを書き込む athena_shared_logger への呼び出しを行ってください。

提供されているロガーは、Apache Log4j を介してイベントを書き込み、このインターフェイスのログレベルを継承します。指定できるログレベル値は DEBUGERRORFATALINFOWARNWARNING です。ロガーで対応する名前付き関数を使用して、これらの値を生成できます。

注記

名前 athena_user_logger または athena_shared_logger を再バインドしないでください。これを行うと、ログオブジェクトはセッションの残りの部分で CloudWatch に書き込むことができなくなります。

次の手順は、Athena ノートブックイベントを Amazon CloudWatch Logs にログ記録する方法を示しています。

Athena ノートブックイベントを Amazon CloudWatch Logs にログ記録するには
  1. Amazon Athena で Apache Spark を開始する に従って、一意の名前で Spark 対応のワークグループを Athena に作成します。このチュートリアルでは、ワークグループ名 athena-spark-example を使用します。

  2. ステップ 7: 独自のノートブックを作成する の手順に従ってノートブックを作成し、新しいセッションを開始します。

  3. Athena ノートブックエディタの新しいノートブックセルに、次のコマンドを入力します。

    athena_user_logger.info("Hello world.")
  4. セルを実行します。

  5. 次のいずれかを実行して、現在のセッション ID を取得します。

    • セル出力 (例: ... session=72c24e73-2c24-8b22-14bd-443bdcd72de4) を表示します。

    • 新しいセルで、マジックコマンド %session_id を実行します。

  6. セッション ID を保存します。

  7. ノートブックセッションの実行に使用しているのと同じ AWS アカウント で、https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  8. CloudWatch コンソールのナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  9. ロググループのリストで、次の例のように Spark 対応の Athena ワークグループの名前を持つロググループを選択します。

    /aws-athena/athena-spark-example

    [Log streams] (ログストリーム) セクションには、ワークグループの 1 つ以上のログストリームリンクのリストが含まれています。各ログストリーム名には、セッション ID、エグゼキューター ID、および一意の UUID がスラッシュ文字によって区切られています。

    例えば、セッション ID が 5ac22d11-9fd8-ded7-6542-0412133d3177 であり、エグゼキューター ID が f8c22d11-9fd8-ab13-8aba-c4100bfba7e2 の場合、ログストリームの名前は次の例のようになります。

    5ac22d11-9fd8-ded7-6542-0412133d3177/f8c22d11-9fd8-ab13-8aba-c4100bfba7e2/f012d7cb-cefd-40b1-90b9-67358f003d0b
  10. セッションのログストリームのログストリームを選択します。

  11. [Log events] (イベントのログ) ページで、[Message] (メッセージ) 列を表示します。

    実行したセルのログイベントは次のようになります。

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: Hello world.
  12. Athena ノートブックエディタに戻ります。

  13. 新しいセルに、次のコードを入力します。このコードは変数を CloudWatch にログします。

    x = 6 athena_user_logger.warn(x)
  14. セルを実行します。

  15. 同じログストリームの CloudWatch コンソールの [Log events] (ログイベント) ページに戻ります。

  16. ログストリームには、次のようなメッセージを含むログイベントエントリが含まれるようになりました。

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6

次の手順は、Athena ノートブックイベントを Amazon CloudWatch Logs にログ記録する方法を示しています。

Athena ノートブックイベントを Amazon CloudWatch Logs にログ記録するには
  1. Amazon Athena で Apache Spark を開始する に従って、一意の名前で Spark 対応のワークグループを Athena に作成します。このチュートリアルでは、ワークグループ名 athena-spark-example を使用します。

  2. ステップ 7: 独自のノートブックを作成する の手順に従ってノートブックを作成し、新しいセッションを開始します。

  3. Athena ノートブックエディタの新しいノートブックセルに、次のコマンドを入力します。

    athena_user_logger.info("Hello world.")
  4. セルを実行します。

  5. 次のいずれかを実行して、現在のセッション ID を取得します。

    • セル出力 (例: ... session=72c24e73-2c24-8b22-14bd-443bdcd72de4) を表示します。

    • 新しいセルで、マジックコマンド %session_id を実行します。

  6. セッション ID を保存します。

  7. ノートブックセッションの実行に使用しているのと同じ AWS アカウント で、https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  8. CloudWatch コンソールのナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  9. ロググループのリストで、次の例のように Spark 対応の Athena ワークグループの名前を持つロググループを選択します。

    /aws-athena/athena-spark-example

    [Log streams] (ログストリーム) セクションには、ワークグループの 1 つ以上のログストリームリンクのリストが含まれています。各ログストリーム名には、セッション ID、エグゼキューター ID、および一意の UUID がスラッシュ文字によって区切られています。

    例えば、セッション ID が 5ac22d11-9fd8-ded7-6542-0412133d3177 であり、エグゼキューター ID が f8c22d11-9fd8-ab13-8aba-c4100bfba7e2 の場合、ログストリームの名前は次の例のようになります。

    5ac22d11-9fd8-ded7-6542-0412133d3177/f8c22d11-9fd8-ab13-8aba-c4100bfba7e2/f012d7cb-cefd-40b1-90b9-67358f003d0b
  10. セッションのログストリームのログストリームを選択します。

  11. [Log events] (イベントのログ) ページで、[Message] (メッセージ) 列を表示します。

    実行したセルのログイベントは次のようになります。

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: Hello world.
  12. Athena ノートブックエディタに戻ります。

  13. 新しいセルに、次のコードを入力します。このコードは変数を CloudWatch にログします。

    x = 6 athena_user_logger.warn(x)
  14. セルを実行します。

  15. 同じログストリームの CloudWatch コンソールの [Log events] (ログイベント) ページに戻ります。

  16. ログストリームには、次のようなメッセージを含むログイベントエントリが含まれるようになりました。

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.