AWS CLI を使用してジョブ実行を管理する - Amazon EMR

AWS CLI を使用してジョブ実行を管理する

このトピックでは、AWS Command Line Interface (AWS CLI) を使用してジョブ実行を管理する方法について説明します。セキュリティパラメータ、ドライバー、さまざまなオーバーライド設定などのプロパティについて詳しく説明します。また、ログ記録を設定するさまざまな方法を扱ったサブトピックも含まれています。

ジョブ実行を構成するためのオプション

以下のオプションを使用して、ジョブ実行パラメータを設定します。

  • --execution-role-arn: ジョブの実行に使用する IAM ロールを指定する必要があります。詳細については、「Amazon EMR on EKS でのジョブ実行ロールの使用」を参照してください。

  • --release-label: Amazon EMR バージョン 5.32.0 および 6.2.0 以降を使用して Amazon EMR on EKS をデプロイできます。Amazon EMR on EKS は、以前の Amazon EMR リリースバージョンではサポートされていません。詳細については、「Amazon EMR on EKS リリース」を参照してください。

  • --job-driver: Job ドライバーは、メインジョブに入力を提供するために使用されます。これは、実行するジョブタイプの値の 1 つだけを渡すことができるユニオンタイプフィールドです。サポートされるジョブタイプには次のものが含まれます。

    • Spark 送信ジョブ - Spark 送信を通じてコマンドを実行するために使用されます。このジョブタイプを使用して、Scala、PySpark、SparkR、SparkSQL およびその他のサポートされているジョブを Spark 送信を通じて 実行できます。このジョブタイプには以下のパラメータがあります。

      • エントリポイント - これは、実行するメイン jar/py ファイルへの HCFS (Hadoop 互換ファイルシステム) 参照です。

      • EntryPointArguments - これはメイン jar/pyファイルに渡す引数の配列です。これらのパラメータの読み取りは、エントリーポイントコードを使用して処理する必要があります。配列の各引数は、カンマで区切る必要があります。EntryPointArguments には、()、{}、[] などの角括弧や丸括弧を含めることはできません。

      • SparkSubmitParameters - これらは、ジョブに送信する追加の Spark パラメータです。このパラメータを使用して、ドライバーメモリや —conf や —class などのエグゼキューターの数など、デフォルトの Spark プロパティを上書きします。詳細については、spark-submit を使用したアプリケーションの起動を参照してください。

    • Spark SQL ジョブ - Spark SQL を使用して SQL クエリファイルを実行するために使用されます。このジョブタイプを使用して SparkSQL ジョブを実行できます。このジョブタイプには以下のパラメータがあります。

      • エントリポイント - これは、実行する SQL クエリファイルへの HCFS (Hadoop 互換ファイルシステム) 参照です。

        Spark SQL ジョブに使用できるその他の Spark パラメータのリストについては、「StartJobRun API による Spark SQL スクリプトの実行」を参照してください。

  • --configuration-overrides: 設定オブジェクトを提供することで、アプリケーションのデフォルト設定を上書きできます。短縮構文を使用して、設定を指定したり、JSON ファイルの設定オブジェクトを参照したりできます。設定オブジェクトは、分類、プロパティ、オプションの入れ子になっている設定で構成されます。プロパティは、そのファイル内で上書きする設定で構成されます。単一の JSON オブジェクトで、複数のアプリケーションに複数の分類を指定できます。Amazon EMR リリースバージョンによって使用可能な設定分類は異なります。Amazon EMR の各リリースバージョンで使用可能な設定分類の一覧については、Amazon EMR on EKS リリース を参照してください。

    アプリケーションの上書きと Spark 送信パラメータで同じ設定を渡すと、Spark 送信パラメータが優先されます。完全な設定優先順位リストは、優先順位の最も高いものから最も低いものの順に表示されます。

    • SparkSession 作成時に提供される構成。

    • —conf を使用して sparkSubmitParameters の一部として提供される構成。

    • アプリケーションの上書きの一部として提供される設定。

    • リリース用に Amazon EMR によって選択された最適化された設定。

    • アプリケーションのデフォルトのオープンソース構成。

    Amazon CloudWatch または Amazon S3 を使用してジョブの実行をモニタリングするには、CloudWatch の設定の詳細を指定する必要があります。詳細については、Amazon S3 ログを使用するようにジョブ実行を設定するおよびAmazon CloudWatch Logs を使用するようにジョブ実行を設定するを参照してください。S3 バケットまたは CloudWatch Logs グループが存在しない場合、Amazon EMR はバケットにログをアップロードする前にそれを作成します。

  • Kubernetes 設定オプションのその他のリストについては、Kubernetes の Spark プロパティを参照してください。

    以下の Spark 設定はサポートされていません。

    • spark.kubernetes.authenticate.driver.serviceAccountName

    • spark.kubernetes.authenticate.executor.serviceAccountName

    • spark.kubernetes.namespace

    • spark.kubernetes.driver.pod.name

    • spark.kubernetes.container.image.pullPolicy

    • spark.kubernetes.container.image

      注記

      カスタマイズされた Docker イメージに spark.kubernetes.container.image を使用できます。詳細については、「Amazon EMR on EKS の Docker イメージのカスタマイズ」を参照してください。

ジョブの実行のリスト

次の例に示すように、list-job-run を実行してジョブ実行の状態を表示できます。

aws emr-containers list-job-runs --virtual-cluster-id <cluster-id>

ジョブ実行の説明

次の例に示すように、describe-job-run を実行すると、ジョブの状態、状態の詳細、ジョブ名など、ジョブの詳細を取得できます。

aws emr-containers describe-job-run --virtual-cluster-id cluster-id --id job-run-id

ジョブ実行をキャンセルする

次の例に示すように、cancel-job-run を実行して実行中のジョブをキャンセルできます。

aws emr-containers cancel-job-run --virtual-cluster-id cluster-id --id job-run-id