JAR ファイルとカスタム Spark 設定を追加する - Amazon Athena

JAR ファイルとカスタム Spark 設定を追加する

Amazon Athena for Apache Spark でセッションを作成または編集する場合、[Spark プロパティ] を使用してセッションの .jar ファイル、パッケージ、またはその他のカスタム設定を指定できます。Spark のプロパティを指定するには、Athena コンソール、AWS CLI、または Athena API を使用できます。

Athena コンソールを使用した Spark プロパティの指定

Athena コンソールでは、ノートブックの作成時や現在のセッションの編集時に Spark プロパティを指定できます。

[ノートブックの作成] または [セッションの詳細の編集] ダイアログボックスにプロパティを追加する方法
  1. [Spark のプロパティ] を拡張します。

  2. プロパティを追加するには、[テーブルで編集] または [JSON で編集] オプションを使用します。

    • [テーブルで編集] オプションを使用する場合は、[プロパティを追加] を選択してプロパティを追加するか、[削除] を選択してプロパティを削除します。[キー] ボックスと [値] ボックスを使用して、プロパティ名とその値を入力します。

      • カスタム .jar ファイルを追加するには、spark.jars プロパティを使用します。

      • パッケージファイルを指定するには、spark.jars.packages プロパティを使用します。

    • 設定を直接入力して編集するには、[JSON で編集] オプションを選択します。JSON テキストエディタでは、次のタスクを実行できます。

      • JSON テキストをクリップボードにコピーするには、[コピー] を選択します。

      • JSON エディタからすべてのテキストを削除するには、[クリア] を選択します。

      • 設定 (歯車) アイコンを選択して行折り返しの動作を設定するか、JSON エディタのカラーテーマを選択します。

メモ

  • Athena for Spark でプロパティを設定できます。これは [SparkConf] オブジェクトで [Spark properties] を直接設定する場合と同じです。

  • spark. プレフィックスが付いたすべての Spark プロパティを開始します。他のプレフィックスが付いたプロパティは無視されます。

  • Athena のカスタム設定では、すべての Spark プロパティを利用できるわけではありません。設定が制限されている StartSession リクエストを送信すると、セッションは開始時に失敗します。

    • spark.athena. プレフィックスは予約されているため使用できません。

AWS CLI または Athena API を使用してカスタム設定を提供する

AWS CLI または Athena API を使用してセッション設定を指定するには、StartSession API アクションまたは start-session CLI コマンドを使用します。StartSession リクエストでは、EngineConfiguration オブジェクトの SparkProperties フィールドを使用して設定情報を JSON 形式で渡します。これにより、指定した設定でセッションが開始されます。リクエストの構文については、「Amazon Athena API リファレンス」の「StartSession」を参照してください。

セッション開始エラーのトラブルシューティング

セッション開始時にカスタム設定エラーが発生すると、Athena for Spark コンソールにエラーメッセージバナーが表示されます。セッション開始エラーをトラブルシューティングするには、セッション状態の変更やログ情報を確認できます。

セッション状態の変更に関する情報を表示する

セッション状態の変更に関する詳細は、Athena ノートブックエディタまたは Athena API から取得できます。

Athena コンソールでセッション状態情報を表示する方法
  1. Athena ノートブックエディタの右上にある [セッション] メニューから [詳細を表示] を選択します。

  2. [現在のセッション] タブを表示します。[セッション情報] セクションには、セッション ID、ワークグループ、ステータス、状態変更理由などの情報が表示されます。

    次の画面キャプチャ例は、Athena の Spark セッションエラーに関連して、[セッション情報] ダイアログボックスの [状態変更の理由] セクションに表示される情報を示しています。

    Athena for Spark コンソールで、セッション状態情報を確認します。
Athena API を使用してセッション状態情報を表示する方法
  • Athena API では、SessionStatus オブジェクトの StateChangeReason フィールドでセッション状態の変更情報を確認できます。

注記

セッションを手動で停止した後、またはアイドルタイムアウト (デフォルトは 20 分) 後にセッションが停止した場合には、[StateChangeReason] の値が [リクエストに従ってセッションを終了済み] に変わります。

ロギングを使用したセッション開始エラーのトラブルシューティング

セッション開始時に発生するカスタム設定エラーは Amazon CloudWatch にログとして記録されます。CloudWatch Logs 内で AthenaSparkSessionErrorLogger からのエラーメッセージを検索し、失敗したセッションの開始をトラブルシューティングします。

Spark ロギングの詳細については、「Athena で Spark アプリケーションイベントのログを記録する」を参照してください。

Athena for Spark のトラブルシューティングセッションの詳細については、「セッションのトラブルシューティング」を参照してください。