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
" } } } }