Ejecución de scripts SQL de Spark a través de la API de StartJobRun - Amazon EMR

Ejecución de scripts SQL de Spark a través de la API de StartJobRun

Las versiones 6.7.0 y posteriores de Amazon EMR en EKS incluyen un controlador de tareas de Spark SQL para que pueda ejecutar scripts de Spark SQL a través de la API StartJobRun. Puede suministrar archivos de punto de entrada de SQL para ejecutar directamente consultas de Spark SQL en Amazon EMR en EKS con la API de StartJobRun, sin modificar los scripts de Spark SQL existentes. En la siguiente tabla, se enumeran los parámetros de Spark que son compatibles con los trabajos de Spark SQL a través de la API StartJobRun.

Puede elegir entre los siguientes parámetros de Spark para enviarlos a un trabajo de Spark SQL. Use estos parámetros para anular las propiedades predeterminadas de Spark.

Opción Descripción

--name NAME

Nombre de la aplicación
--jars JARS Lista de archivos jar separados por comas que se incluirán con el classpath de controlador y ejecutor.
--packages Lista de coordenadas Maven de los archivos jar separadas por comas para incluirlas en los classpaths de controlador y ejecutor.
--exclude-packages Lista separada por comas de groupId:artifactId, para excluir mientras se resuelven las dependencias proporcionadas en –packages para evitar conflictos de dependencia.
--repositories Lista de repositorios remotos adicionales separados por comas para buscar las coordenadas Maven proporcionadas con –packages.
--files FILES Lista de archivos separados por comas que se colocarán en el directorio de trabajo de cada ejecutor.
--conf PROP=VALUE Propiedad de configuración de Spark.
--properties-file FILE Ruta a un archivo desde el que cargar propiedades adicionales.
--driver-memory MEM Memoria para el controlador. 1024 MB por defecto.
--driver-java-options Opciones de Java adicionales para pasarlas al controlador.
--driver-library-path Entradas adicionales de la ruta de la biblioteca para pasarlas al controlador.
--driver-class-path Entradas de ruta de clases adicionales para pasarlas al controlador.
--executor-memory MEM Memoria por ejecutor. 1 GB por defecto.
--driver-cores NUM Número de núcleos utilizados por el controlador.
--total-executor-cores NUM Núcleos totales para todos los ejecutores.
--executor-cores NUM Número de núcleos utilizados por cada ejecutor.
--num-executors NUM Número de ejecutores que se van a lanzar.
-hivevar <key=value> Sustitución de variables para aplicarla a los comandos de Hive, por ejemplo, -hivevar A=B
-hiveconf <property=value> Valor que se va a usar para la propiedad dada.

Para un trabajo de Spark SQL, cree un archivo start-job-run-request.json y especifique los parámetros necesarios para la ejecución del trabajo, como en el siguiente ejemplo:

{ "name": "myjob", "virtualClusterId": "123456", "executionRoleArn": "iam_role_name_for_job_execution", "releaseLabel": "emr-6.7.0-latest", "jobDriver": { "sparkSqlJobDriver": { "entryPoint": "entryPoint_location", "sparkSqlParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.driver.memory":"2G" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED", "cloudWatchMonitoringConfiguration": { "logGroupName": "my_log_group", "logStreamNamePrefix": "log_stream_prefix" }, "s3MonitoringConfiguration": { "logUri": "s3://my_s3_log_location" } } } }