Administración de las ejecuciones de trabajos con la AWS CLI - Amazon EMR

Administración de las ejecuciones de trabajos con la AWS CLI

Este tema explica cómo administrar las ejecuciones de trabajos con la AWS Command Line Interface (AWS CLI). Aborda detalles sobre las propiedades, como los parámetros de seguridad, el controlador y varios ajustes de anulación. También incluye subtemas que abarcan diversas formas de configurar el registro.

Opciones para configurar una ejecución de trabajo

Utilice las siguientes opciones para configurar los parámetros de ejecución del trabajo:

  • --execution-role-arn: debe proporcionar un rol de IAM que se utilice para ejecutar trabajos. Para obtener más información, consulte Uso de roles de ejecución de trabajos con Amazon EMR en EKS.

  • --release-label: puede implementar Amazon EMR en EKS con las versiones 5.32.0, 6.2.0 y posteriores de Amazon EMR. Amazon EMR en EKS no es compatible con las versiones de lanzamiento anteriores de Amazon EMR. Para obtener más información, consulte Versiones de Amazon EMR en EKS.

  • --job-driver: el controlador de trabajo se utiliza para proporcionar información sobre el trabajo principal. Se trata de un campo de tipo unión en el que solo puede pasar uno de los valores del tipo de trabajo que desee ejecutar. Los tipos de trabajo admitidos son:

    • Envío de trabajos de Spark: se usa para ejecutar un comando a través de spark-submit. Puede usar este tipo de trabajo para ejecutar Scala, PySpark, SparkR, SparkSQL y cualquier otro trabajo compatible mediante Spark Submit. Este tipo de trabajo tiene los siguientes parámetros:

      • Entrypoint: es la referencia del HCFS (sistema de archivos compatible con Hadoop) al archivo jar/py principal que quiere ejecutar.

      • EntryPointArguments: se trata de un conjunto de argumentos que desea pasar a su archivo jar o py principal. Debería manejar la lectura de estos parámetros mediante su código de punto de entrada. Cada argumento de la matriz debe estar separado con una coma. EntryPointArguments no pueden contener corchetes ni paréntesis, como (), {} o [].

      • SparkSubmitParameters: son los parámetros de Spark adicionales que desea enviar al trabajo. Use este parámetro para anular las propiedades predeterminadas de Spark, como la memoria del controlador o el número de ejecutores, como —conf o —class. Para obtener más información, consulte Launching Applications with spark-submit.

    • Trabajos de Spark SQL: se utilizan para ejecutar un archivo de consulta SQL a través de Spark SQL. Puede usar este tipo de trabajo para ejecutar trabajos de SparkSQL. Este tipo de trabajo tiene los siguientes parámetros:

  • --configuration-overrides: puede anular las configuraciones predeterminadas de las aplicaciones suministrando un objeto de configuración. Puede utilizar una sintaxis abreviada para proporcionar la configuración o hacer referencia al objeto de configuración en un archivo JSON. Los objetos de configuración se componen de una clasificación, propiedades y configuraciones anidadas opcionales. Las propiedades se componen de la configuración que se desea anular en ese archivo. Es posible especificar varias clasificaciones para varias aplicaciones en un solo objeto JSON. Las clasificaciones de configuración disponibles varían según la versión de Amazon EMR. Para ver una lista de las clasificaciones de configuración que están disponibles para cada versión de Amazon EMR, consulte Versiones de Amazon EMR en EKS.

    Si pasa la misma configuración en una aplicación de anulación y en los parámetros de envío de Spark, prevalecerán los parámetros de envío de Spark. A continuación se muestra la lista completa de prioridades de configuración, en orden de mayor a menor.

    • Configuración proporcionada al crear SparkSession.

    • Configuración proporcionada como parte de sparkSubmitParameters mediante —conf.

    • Configuración proporcionada como parte de las anulaciones de aplicaciones.

    • Configuraciones optimizadas elegidas por Amazon EMR para la versión.

    • Configuraciones de código abierto predeterminadas para la aplicación.

    Para supervisar las ejecuciones de trabajos con Amazon CloudWatch o Amazon S3, debe proporcionar los detalles de configuración de CloudWatch. Para obtener más información, consulte Configure una ejecución de trabajo para utilizar registros de Amazon S3 y Configurar una ejecución de trabajo para usar Registros de Amazon CloudWatch. Si el bucket de S3 o el grupo de registros de CloudWatch no existe, Amazon EMR lo crea antes de cargar los registros en el bucket.

  • Para obtener una lista adicional de las opciones de configuración de Kubernetes, consulte Propiedades de Spark en Kubernetes.

    Las siguientes configuraciones de Spark no son compatibles.

    • 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

      nota

      Puede utilizar spark.kubernetes.container.image para imágenes de Docker personalizadas. Para obtener más información, consulte Personalización de las imágenes de Docker para Amazon EMR en EKS.

Enumerar ejecuciones de trabajos

Puede ejecutar list-job-run para mostrar los estados de las ejecuciones de los trabajos, como se muestra en el siguiente ejemplo.

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

Describir una ejecución de trabajo

Puede ejecutar describe-job-run para obtener más detalles sobre el trabajo, como el estado, los detalles del estado y el nombre del trabajo, tal como se muestra en el siguiente ejemplo.

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

Cancelar una ejecución de trabajo

Puede ejecutar cancel-job-run para cancelar los trabajos en ejecución, tal como se muestra en el siguiente ejemplo.

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