Todos los productos
Search
Centro de documentos

DataWorks:Crear un nodo EMR Spark SQL

Última actualización: Sep 04, 2026

Un nodo E-MapReduce (EMR) Spark SQL utiliza un motor de consultas SQL distribuido para procesar datos estructurados y mejorar la eficiencia en la ejecución de trabajos.

Requisitos previos

  • Para personalizar el entorno de componentes antes del desarrollo de nodos, cree una custom image basada en la imagen oficial dataworks_emr_base_task_pod y use the image in DataStudio.

    Por ejemplo, puede reemplazar un paquete JAR de Spark o depender de libraries, files o JAR packages específicos al crear una imagen personalizada.

  • Registre un clúster de EMR en DataWorks. Para obtener más información, consulte Legacy Data Development: Bind EMR compute resources.

  • Los usuarios de RAM deben contar con los permisos obligatorios. El propietario o administrador del espacio de trabajo debe agregar al usuario de RAM al espacio de trabajo y asignarle el rol Development o Workspace Administrator. El rol Workspace Administrator otorga permisos amplios; asígnelo con precaución. Para obtener más información, consulte Add members to a workspace.

  • Adquiera y configure un resource group, lo que incluye vincularlo a un espacio de trabajo y definir su configuración de red. Para obtener más información, consulte Use a serverless resource group.

  • Cree un flujo de negocio. En DataStudio, todos los nodos de desarrollo se organizan en flujos de negocio. Para obtener más información, consulte Create a business flow.

  • Si sus tareas requieren un entorno de desarrollo específico, utilice DataWorks para construir una imagen personalizada con los componentes necesarios. Para obtener más información, consulte Custom images.

Limitaciones

  • Este tipo de tarea solo se puede ejecutar en un serverless resource group (recomendado) o en un resource group exclusivo para programación. Si necesita utilizar una imagen en el desarrollo de datos, debe usar un resource group serverless.

  • Para gestionar metadatos de un clúster DataLake o un clúster personalizado en DataWorks, configure EMR-HOOK en el clúster. Sin esta configuración, DataWorks no podrá mostrar metadatos en tiempo real, generar registros de auditoría, proporcionar linaje de datos ni realizar tareas de gobernanza relacionadas con EMR. Para obtener más información sobre cómo configurar EMR-HOOK, consulte Configure EMR-HOOK for Spark SQL.

  • El linaje de datos es compatible con clústeres EMR Serverless Spark, pero no con clústeres EMR on ACK Spark.

  • El registro visual de funciones es compatible con clústeres DataLake y clústeres personalizados, pero no con clústeres EMR on ACK Spark ni con clústeres EMR Serverless Spark.

Notes

Si ha habilitado el control de acceso Ranger para Spark en el clúster de EMR asociado al espacio de trabajo actual:

  • Las tareas de Spark que utilizan la imagen predeterminada admiten esta función automáticamente.

  • Para ejecutar una tarea de Spark con una imagen personalizada, envíe un ticket al soporte técnico para solicitar una actualización de la imagen.

Paso 1: Crear un nodo

  1. Inicie sesión en la consola de DataWorks. En la región objetivo, haga clic en Data Development and O&M > Data Development en el panel de navegación izquierdo. Seleccione un espacio de trabajo en la lista desplegable y haga clic en Go to Data Development.

  2. Cree un nodo EMR Spark SQL.

    1. Haga clic con el botón derecho en el flujo de negocio objetivo y elija Create Node > EMR > EMR Spark SQL.

      Nota

      También puede pasar el cursor sobre Create y elegir Create Node > EMR > EMR Spark SQL.

    2. En el cuadro de diálogo Create Node, establezca los campos Name, Compute Engine Instance, Node Type y Path. Haga clic en Confirm para abrir el editor de nodos.

      Nota

      El nombre del nodo puede contener letras mayúsculas, letras minúsculas, caracteres chinos, dígitos, guiones bajos (_) y puntos (.).

Paso 2: Desarrollar la tarea

En el editor de nodos EMR Spark SQL, haga doble clic en el nodo creado para abrir la página de desarrollo de tareas.

Escribir código SQL

Defina variables con el formato ${variable_name} y asígneles valores en el panel Scheduling Settings > Scheduling Parameter para habilitar el paso dinámico de parámetros durante las ejecuciones programadas. Para obtener más información sobre los formatos compatibles, consulte Formats of scheduling parameters. A continuación se proporciona un código de ejemplo.

SHOW TABLES; 
-- Use ${var} to define a variable named var. If you assign the ${yyyymmdd} value to this variable, you can create a table whose name is suffixed with the business date.
CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
ip STRING COMMENT'IP address',
uid STRING COMMENT'User ID'
)PARTITIONED BY(
dt STRING
); -- You can use this variable together with scheduling parameters.
Nota
  • El tamaño de una instrucción SQL no puede superar los 130 KB.

  • Si hay varios recursos de cómputo de EMR vinculados a su espacio de trabajo, seleccione el que requiera para su tarea. Este paso no es necesario si solo hay un recurso vinculado.

(Opcional) Configuración avanzada

Configure las propiedades específicas de Spark en la configuración avanzada del nodo. Para obtener más información sobre las propiedades de Spark, consulte Configuración de Spark. Los parámetros avanzados disponibles varían según el tipo de clúster de EMR, como se describe en las siguientes tablas.

Datalake and custom: EMR on ECS

Parámetro

Descripción

queue

La cola de programación a la que se envían los trabajos. Valor predeterminado: default. Para obtener más información sobre EMR YARN, consulte Basic queue configurations.

priority

La prioridad. Valor predeterminado: 1.

FLOW_SKIP_SQL_ANALYZE

El modo de ejecución de SQL. Valores válidos:

  • true: Ejecuta varias instrucciones SQL por cada ejecución.

  • false (predeterminado): Ejecuta una sola instrucción SQL por cada ejecución.

Nota

Este parámetro solo se puede utilizar para ejecuciones de prueba en el entorno de desarrollo.

ENABLE_SPARKSQL_JDBC

El método utilizado para enviar código SQL. Valores válidos:

  • true: Envía el código SQL mediante el método JDBC. Si un clúster de EMR no cuenta con el servicio Kyuubi, el código se envía a Spark Thrift Server. Si el clúster tiene el servicio Kyuubi, el código se envía a Kyuubi y es posible especificar parámetros personalizados de Spark.

    Ambos métodos de envío admiten linaje de datos. Sin embargo, para las tareas enviadas a Thrift Server, la salida de metadatos no está disponible.

  • false (predeterminado): Indica que el código SQL se envía en modo clúster de spark-submit. En este modo de envío, tanto Spark 2 como Spark 3 admiten linaje de metadatos e información de salida. También puede especificar parámetros personalizados de Spark.

    Nota
    • Cuando utiliza el modo clúster de spark-submit, se crean archivos y directorios temporales en el directorio /tmp del HDFS del clúster de forma predeterminada. Asegúrese de tener permisos de lectura y escritura en este directorio.

    • Si utiliza el modo clúster de spark-submit, puede agregar directamente parámetros personalizados de SparkConf en la configuración avanzada. Al enviar el código, DataWorks añade automáticamente los nuevos parámetros al comando. Ejemplo: "spark.driver.memory" : "2g".

DATAWORKS_SESSION_DISABLE

Este parámetro solo aplica para ejecuciones de prueba en el entorno de desarrollo. Valores válidos:

  • true: Se crea una nueva conexión JDBC para cada instrucción SQL ejecutada.

  • false (predeterminado): Se reutiliza la misma conexión JDBC al ejecutar distintas instrucciones SQL dentro de un nodo.

Nota

Cuando este parámetro se establece en false, el yarn applicationId de Hive no se imprime. Para imprimir el yarn applicationId, establezca este parámetro en true.

Otros

Agregue parámetros personalizados de Spark Configuration.

Utilice el siguiente formato: "spark.eventLog.enabled":false . DataWorks agrega automáticamente estos parámetros al comando de envío con el formato --conf key=value. Para obtener más información sobre las configuraciones de parámetros, consulte Set global Spark parameters.

Nota
  • DataWorks permite establecer parámetros globales de Spark a nivel de espacio de trabajo para distintos módulos de DataWorks. Puede especificar si los parámetros globales de Spark tienen prioridad sobre los parámetros de Spark dentro de un módulo específico.

  • Para habilitar el control de acceso Ranger, agregue la configuración spark.hadoop.fs.oss.authorization.method=ranger en Set global Spark parameters. Esto garantiza que el control de acceso basado en Ranger surta efecto.

EMR serverless spark

Para obtener más información sobre la configuración de parámetros, consulte Set parameters for submitting a Spark job.

Parámetro

Descripción

FLOW_SKIP_SQL_ANALYZE

El modo de ejecución de SQL. Valores válidos:

  • true: Ejecuta varias instrucciones SQL por cada ejecución.

  • false (predeterminado): Ejecuta una sola instrucción SQL por cada ejecución.

Nota

Este parámetro solo se puede utilizar para ejecuciones de prueba en el entorno de desarrollo.

DATAWORKS_SESSION_DISABLE

Especifica el método de envío de la tarea. Cuando ejecuta una tarea en Data Development, esta se envía a SQL Compute de forma predeterminada. Puede usar este parámetro para especificar si la tarea se envía a SQL Compute o a una cola.

  • true: La tarea se envía a una cola. De forma predeterminada, se utiliza la cola especificada al vincular el recurso de cómputo. Si establece el parámetro DATAWORKS_SESSION_DISABLE en true, puede configurar el parámetro SERVERLESS_QUEUE_NAME para especificar la cola a la que se envía la tarea cuando se ejecuta en Data Development.

  • false (predeterminado): La tarea se envía a SQL Compute para su ejecución.

    Nota

    Este parámetro solo surte efecto para ejecuciones en el entorno de Data Development, no para ejecuciones programadas.

SERVERLESS_RELEASE_VERSION

La versión del motor Spark. De forma predeterminada, se utiliza la Default Engine Version configurada para el clúster en la página Cluster Management del Management Center. Establezca este parámetro para anular el valor predeterminado para una tarea específica.

Nota

El parámetro SERVERLESS_RELEASE_VERSION en la configuración avanzada solo surte efecto cuando la sesión de SQL Compute especificada para el clúster registrado no se encuentra en estado Running en la consola de EMR Serverless Spark.

SERVERLESS_QUEUE_NAME

La cola de recursos a la que se envían las tareas. Cuando una tarea se envía a una cola, se utiliza la Default Resource Queue configurada para el clúster en la página Cluster Management del Management Center de forma predeterminada. Si requiere aislamiento y gestión de recursos, puede agregar colas. Para obtener más información, consulte Manage resource queues.

Opciones de configuración:

  • Especifique la cola de recursos mediante la configuración de parámetros del nodo.

  • Especifique la cola de recursos mediante setting global Spark parameters.

Nota
  • El parámetro SERVERLESS_QUEUE_NAME en la configuración avanzada solo surte efecto cuando la sesión de SQL Compute especificada para el clúster registrado no se encuentra en estado Running en la consola de EMR Serverless Spark.

  • Al ejecutar en Data Development: Primero debe establecer el parámetro DATAWORKS_SESSION_DISABLE en true para enviar tareas a una cola. Esto permite que el parámetro SERVERLESS_QUEUE_NAME surta efecto.

  • Al ejecutar bajo programación desde Operation Center: Las tareas siempre se envían a una cola, no a SQL Compute.

SERVERLESS_SQL_COMPUTE

La sesión de SQL Compute que desea utilizar. De forma predeterminada, se usa el Default SQL Compute configurado para el clúster en la página Cluster Management del Management Center. Si desea utilizar diferentes sesiones de SQL Compute para distintas tareas, puede especificarlas aquí. Para obtener más información sobre cómo crear y gestionar sesiones de SQL Compute, consulte Manage SQL Compute sessions.

Otros

Agregue parámetros personalizados de Spark Configuration.

Utilice el siguiente formato: "spark.eventLog.enabled":"false". DataWorks agrega automáticamente los parámetros al código enviado al clúster de EMR con el formato --conf key=value.

Nota

DataWorks permite establecer parámetros globales de Spark a nivel de espacio de trabajo para distintos módulos de DataWorks. Puede especificar si los parámetros globales de Spark tienen prioridad sobre los parámetros de Spark dentro de un módulo específico. Para obtener más información, consulte Set global Spark parameters.

Guardar y ejecutar la tarea

En la barra de herramientas, haga clic en el icono 保存 Guardar para guardar sus instrucciones SQL, y haga clic en el icono 运行 Ejecutar para ejecutar la tarea SQL.

En el cuadro de diálogo de ejecución, seleccione un resource group que tenga una conexión de red exitosa con su servicio Spark. Si el código del nodo utiliza variables, asigne valores constantes a las variables durante la ejecución de depuración. Para configurar el resource group y los parámetros para ejecuciones programadas, consulte Configure node scheduling. Para obtener más información sobre la depuración de tareas, consulte Task debugging process.

Nota

Si necesita cambiar los valores de los parámetros en el código, haga clic en Advanced Run en la barra de herramientas. Para obtener más información sobre la lógica de asignación de valores de parámetros, consulte What are the differences in value assignment logic among Run, Advanced Run, and smoke testing in the development environment?.

Spark: EMR on ACK

Parámetro

Descripción

FLOW_SKIP_SQL_ANALYZE

El modo de ejecución de SQL. Valores válidos:

  • true: Ejecuta varias instrucciones SQL por cada ejecución.

  • false (predeterminado): Ejecuta una sola instrucción SQL por cada ejecución.

Nota

Este parámetro solo se puede utilizar para ejecuciones de prueba en el entorno de desarrollo.

Otros

Agregue parámetros personalizados de Spark Configuration.

Utilice el siguiente formato: "spark.eventLog.enabled":false. DataWorks agrega automáticamente los parámetros al código enviado al clúster de EMR con el formato --conf key=value.

Nota

DataWorks permite establecer parámetros globales de Spark a nivel de espacio de trabajo para distintos módulos de DataWorks. Puede especificar si los parámetros globales de Spark tienen prioridad sobre los parámetros de Spark dentro de un módulo específico. Para obtener más información, consulte Set global Spark parameters.

Hadoop: EMR on ECS

Parámetro

Descripción

queue

La cola de programación a la que se envían los trabajos. Valor predeterminado: default. Para obtener más información sobre EMR YARN, consulte Basic queue configurations.

priority

La prioridad. Valor predeterminado: 1.

FLOW_SKIP_SQL_ANALYZE

El modo de ejecución de SQL. Valores válidos:

  • true: Ejecuta varias instrucciones SQL por cada ejecución.

  • false (predeterminado): Ejecuta una sola instrucción SQL por cada ejecución.

Nota

Este parámetro solo se puede utilizar para ejecuciones de prueba en el entorno de desarrollo.

USE_GATEWAY

Especifica si se debe enviar el trabajo del nodo a través de un clúster de gateway. Valores válidos:

  • true: El trabajo se envía a través de un clúster de gateway.

  • false (predeterminado): El trabajo no se envía a través de un clúster de gateway. De forma predeterminada, el trabajo se envía a un nodo principal.

Nota

Si no hay ningún clúster de gateway asociado al clúster donde reside el nodo, los envíos posteriores de trabajos de EMR fallarán si establece manualmente este parámetro en true.

Otros

Agregue parámetros personalizados de Spark Configuration.

Utilice el siguiente formato: "spark.eventLog.enabled":false. DataWorks agrega automáticamente los parámetros al código enviado al clúster de EMR con el formato --conf key=value. Para obtener más información sobre las configuraciones de parámetros, consulte Set global Spark parameters.

Nota
  • DataWorks permite establecer parámetros globales de Spark a nivel de espacio de trabajo para distintos módulos de DataWorks. Puede especificar si los parámetros globales de Spark tienen prioridad sobre los parámetros de Spark dentro de un módulo específico.

  • Para habilitar el control de acceso Ranger, agregue la configuración spark.hadoop.fs.oss.authorization.method=ranger en Set global Spark parameters. Esto garantiza que el control de acceso basado en Ranger surta efecto.

Ejecutar la tarea

  1. En la barra de herramientas, haga clic en el icono 高级运行 Ejecutar. En el cuadro de diálogo Parameter, seleccione el resource group de programación creado y haga clic en Running.

    Nota
    • Para acceder a recursos de cómputo en una red pública o en una Virtual Private Cloud (VPC), debe utilizar un resource group de programación que haya pasado una prueba de conectividad con los recursos de cómputo. Para obtener más información, consulte Network connectivity.

    • Si necesita cambiar el resource group para ejecuciones posteriores de la tarea, puede hacer clic en el icono Running with Parameters 高级运行 y seleccionar el resource group deseado.

    • Cuando utiliza un nodo EMR Spark SQL para consultar datos, se pueden devolver hasta 10,000 registros como máximo, y el tamaño total de los datos no puede superar los 10 MB.

  2. Haga clic en el icono 保存 Guardar para guardar las instrucciones SQL.

  3. (Opcional) Realice una prueba de humo.

    Si desea realizar una prueba de humo en el entorno de desarrollo, puede ejecutarla después de ejecutar o confirmar el nodo. Para obtener más información, consulte Perform a smoke test.

Paso 3: Configurar la programación

Si desea que el sistema ejecute periódicamente una tarea en el nodo, puede hacer clic en Properties en el panel de navegación derecho de la pestaña de configuración del nodo para configurar las propiedades de programación de la tarea según sus requisitos de negocio. Para obtener más información, consulte Overview.

Nota
  • Debe configurar las propiedades Rerun attribute y Parent Nodes del nodo antes de poder enviarlo.

  • Si necesita personalizar el entorno de componentes, puede crear una custom image basada en la imagen oficial dataworks_emr_base_task_pod y use it in DataStudio.

    Por ejemplo, puede reemplazar paquetes JAR de Spark o incluir libraries, files o JAR packages específicos al crear una imagen personalizada.

Paso 4: Desplegar la tarea

Una vez configurada una tarea en un nodo, debe confirmarla y desplegarla. Después de confirmar y desplegar la tarea, el sistema la ejecuta de forma regular según las configuraciones de programación.

  1. Haga clic en el icono 保存 en la barra de herramientas superior para guardar la tarea.

  2. Haga clic en el icono 提交 en la barra de herramientas superior para confirmar la tarea.

    En el cuadro de diálogo Submit, configure el parámetro Change description. Luego, determine si desea revisar el código de la tarea después de confirmarla según sus requisitos de negocio.

    Nota
    • Debe configurar los parámetros Rerun y Parent Nodes en la pestaña Properties antes de confirmar la tarea.

    • Puede utilizar la función de revisión de código para garantizar la calidad del código de las tareas y prevenir errores de ejecución causados por código inválido. Si habilita la función de revisión de código, el código de la tarea confirmado solo se podrá desplegar después de aprobar dicha revisión. Para obtener más información, consulte Code review.

Si utiliza un espacio de trabajo en modo estándar, debe desplegar la tarea en el entorno de producción después de confirmarla. Para desplegar una tarea en un nodo, haga clic en Deploy en la esquina superior derecha de la pestaña de configuración del nodo. Para obtener más información, consulte Deploy a node.

Más operaciones

Después de confirmar y desplegar la tarea, esta se ejecuta periódicamente según las configuraciones de programación. Puede hacer clic en Operation Center en la esquina superior derecha de la pestaña de configuración del nodo correspondiente para ir a Operation Center y ver el estado de programación de la tarea. Para obtener más información, consulte Manage scheduled tasks.

Preguntas frecuentes