Todos los productos
Search
Centro de documentos

DataWorks:Nodo EMR Spark SQL

Última actualización: Sep 04, 2026

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

Requisitos previos

  • Antes de comenzar el desarrollo del nodo, si necesita un entorno de componentes personalizado, cree una imagen personalizada basada en la imagen oficial dataworks_emr_base_task_pod y utilícela en Data Studio. Para obtener más información, consulte Create a custom image y Use images in data development.

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

  • Cree un clúster de Alibaba Cloud EMR y regístrelo en DataWorks. Para obtener más información, consulte New Data Studio: Attach an EMR compute resource.

  • (Opcional, para usuarios de RAM) El usuario de Resource Access Management (RAM) para el desarrollo de tareas debe agregarse al espacio de trabajo y asignársele el rol Development o Workspace Administrator (este rol incluye permisos amplios y debe otorgarse con precaución). Para obtener más información, consulte Add workspace members.

    Si utiliza una cuenta raíz, omita este paso.
  • Puede utilizar una imagen personalizada de Custom image para construir un entorno de desarrollo específico para su tarea.

Limitaciones

  • Los nodos EMR Shell solo pueden ejecutarse en un serverless resource group (recomendado) o en un resource group exclusivo para programación. El uso de una imagen personalizada para el desarrollo de datos requiere un resource group serverless.

  • Para gestionar metadatos de un clúster DataLake o personalizado en DataWorks, primero debe configurar EMR-HOOK en el clúster. Para obtener más información, consulte Configure EMR-HOOK for Spark SQL.

    Nota

    Sin EMR-HOOK configurado en el clúster, no podrá ver metadatos en tiempo real, generar registros de auditoría, visualizar linaje de datos ni realizar tareas de gobernanza relacionadas con EMR en DataWorks.

  • Los clústeres EMR on ACK Spark no admiten la visualización del linaje de datos. Los clústeres EMR Serverless Spark sí admiten esta función.

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

Notes

Si ha habilitado el control de acceso Ranger para Spark en el clúster 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.

Procedimiento

  1. En la pestaña de configuración del nodo EMR Spark SQL, realice las siguientes operaciones de desarrollo.

    Desarrollar código SQL

    En el editor SQL, escriba el código de su tarea. Defina variables con el formato ${variable_name} y asigne sus valores en la sección Scheduling Settings > Scheduling Parameters, ubicada en el lado derecho de la pestaña de configuración del nodo, para pasar parámetros dinámicamente a las tareas programadas. Para obtener más información, consulte Sources and expressions of scheduling parameters. Ejemplo:

    SHOW TABLES; -- Define a variable named var by using ${var}. If you set this variable to ${yyyymmdd}, you can create a table with the business date as a suffix. CREATE TABLE IF NOT EXISTS userinfo_new_${var} ( ip STRING COMMENT'IP address', uid STRING COMMENT'User ID' )PARTITIONED BY( dt STRING ); -- Can be used with scheduling parameters.

    (Opcional) Configurar parámetros del nodo EMR

    En la sección EMR Node Parameters del panel Run Configuration, configure los siguientes parámetros:

    • Spark parameter: Parámetros de propiedades integrados de Spark. Para obtener más información, consulte configuración de Spark de código abierto. Puede cargar una Spark configuration template directamente desde Serverless Spark, lo que simplifica la configuración y garantiza la coherencia.

    • DataWorks parameters: Los parámetros avanzados disponibles varían según el tipo de clúster EMR, como se describe en la siguiente tabla.

    Clúster DataLake/Clúster personalizado: EMR on ECS

    Parámetro avanzado

    Descripción

    queue

    La cola de programación para el envío de trabajos. El valor predeterminado es 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 sentencias SQL. Valores válidos:

    • true: Se ejecutan varias sentencias SQL a la vez.

    • false (predeterminado): Se ejecuta una sola sentencia SQL a la vez.

    Nota

    Este parámetro solo es compatible con ejecuciones de prueba en el entorno de desarrollo de datos.

    ENABLE_SPARKSQL_JDBC

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

    • true: El código SQL se envía mediante JDBC. Si el clúster EMR no tiene el servicio Kyuubi, el código SQL se envía a Spark Thrift-Server. Si el clúster EMR cuenta con el servicio Kyuubi, el código SQL se envía a Kyuubi a través de JDBC y se admiten parámetros personalizados de Spark.

      Ambos métodos admiten linaje de metadatos. Sin embargo, las tareas enviadas a Thrift-Server carecen de información de salida para las tareas de nodo correspondientes en los metadatos.

    • false (predeterminado): El código SQL se envía mediante el método de clúster Spark-submit. En este modo, tanto Spark2 como Spark3 admiten linaje de metadatos e información de salida. También se admiten parámetros personalizados de Spark.

      Nota
      • El método de clúster Spark-submit crea archivos y directorios temporales en el directorio /tmp del HDFS del clúster EMR de forma predeterminada. Asegúrese de que el directorio tenga permisos de lectura y escritura.

      • Cuando utiliza el método de clúster Spark-submit, puede agregar directamente parámetros personalizados de SparkConf en las configuraciones avanzadas. DataWorks añade automáticamente los nuevos parámetros al comando cuando envía el código. Ejemplo: "spark.driver.memory" : "2g".

    DATAWORKS_SESSION_DISABLE

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

    • true: Se crea una nueva conexión JDBC cada vez que se ejecuta una sentencia SQL.

    • false (predeterminado): Se reutiliza la misma conexión JDBC cuando se ejecutan diferentes sentencias SQL dentro de un solo nodo.

    Nota

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

    Otros

    Parámetros personalizados de Spark Configuration. Agregue parámetros de propiedades específicos de Spark.

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

    Nota
    • DataWorks permite configurar parámetros globales de Spark a nivel de espacio de trabajo para cada módulo de DataWorks. Puede especificar si la prioridad de los parámetros globales de Spark es mayor que la de los parámetros de Spark configurados dentro de un módulo específico.

    • Para habilitar el control de acceso Ranger, agregue spark.hadoop.fs.oss.authorization.method=ranger a la global Spark parameter configurations para garantizar que el control de acceso Ranger surta efecto.

    Clúster EMR Serverless Spark

    Para consultar la configuración de parámetros relacionada, véase Spark task parameter settings.

    Parámetro avanzado

    Descripción

    FLOW_SKIP_SQL_ANALYZE

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

    • true: Se ejecutan varias sentencias SQL a la vez.

    • false (predeterminado): Se ejecuta una sola sentencia SQL a la vez.

    Nota

    Este parámetro solo es compatible con ejecuciones de prueba en el entorno de desarrollo de datos.

    DATAWORKS_SESSION_DISABLE

    El método de envío de tareas. Durante el desarrollo de datos, las tareas se envían a SQL Compute para su ejecución de forma predeterminada. Puede usar este parámetro para especificar si la tarea se ejecuta a través de SQL Compute o se envía a una cola para su ejecución.

    • true: La tarea se envía a una cola para su ejecución. De forma predeterminada, se utiliza la cola por defecto especificada al asociar el recurso de cómputo. Cuando DATAWORKS_SESSION_DISABLE se establece en true, puede configurar el parámetro SERVERLESS_QUEUE_NAME para especificar la cola a la que se envían las tareas durante el desarrollo de datos.

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

      Nota

      Este parámetro solo surte efecto durante la ejecución en el desarrollo de datos, no durante las ejecuciones programadas.

    SERVERLESS_RELEASE_VERSION

    La versión del motor Spark. De forma predeterminada, se utiliza la Default Engine Version configurada en los ajustes del clúster bajo Compute Resource en el Management Center. Para establecer una versión diferente del motor para una tarea específica, configure este parámetro.

    Nota

    El parámetro SERVERLESS_RELEASE_VERSION en las configuraciones avanzadas solo surte efecto cuando el SQL Compute (sesión) especificado para el clúster registrado se encuentra en estado detenido 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 configura para enviarse a una cola para su ejecución, se utiliza la Default Resource Queue configurada en los ajustes del clúster bajo Clusters en el Management Center de forma predeterminada. Si tiene requisitos de aislamiento y gestión de recursos, puede agregar colas. Para obtener más información, consulte Manage resource queues.

    Métodos de configuración:

    • Especifique la cola de recursos para el envío de tareas mediante la configuración de parámetros del nodo.

    • Especifique la cola de recursos para el envío de tareas mediante la configuración de global Spark parameters.

    Nota
    • El parámetro SERVERLESS_QUEUE_NAME en las configuraciones avanzadas solo surte efecto cuando el SQL Compute (sesión) especificado para el clúster registrado se encuentra en estado detenido en la consola de EMR Serverless Spark.

    • Durante la ejecución en desarrollo de datos: Primero debe establecer DATAWORKS_SESSION_DISABLE en true para que las tareas se envíen a una cola para su ejecución. Solo entonces el parámetro SERVERLESS_QUEUE_NAME surte efecto para especificar la cola de tareas.

    • Durante la ejecución programada en Operation Center: Las tareas se envían forzosamente a una cola para su ejecución y no pueden enviarse a SQL Compute.

    SERVERLESS_SQL_COMPUTE

    El SQL Compute (sesión SQL) que se utilizará. De forma predeterminada, se usa el Default SQL Compute configurado en los ajustes del clúster bajo Compute Resource en el Management Center. Para establecer una sesión SQL diferente para una tarea específica, configure este parámetro. Para obtener información sobre cómo crear y gestionar sesiones SQL, consulte Manage SQL Compute sessions.

    Otros

    Parámetros personalizados de Spark Configuration. Agregue parámetros de propiedades específicos de Spark.

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

    Nota

    DataWorks permite configurar parámetros globales de Spark a nivel de espacio de trabajo para cada módulo de DataWorks. Puede especificar si la prioridad de los parámetros globales de Spark es mayor que la de los parámetros de Spark configurados dentro de un módulo específico. Para obtener más información sobre la configuración de parámetros globales de Spark, consulte Configure global Spark parameters.

    Clúster Spark: EMR on ACK

    Parámetro avanzado

    Descripción

    FLOW_SKIP_SQL_ANALYZE

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

    • true: Se ejecutan varias sentencias SQL a la vez.

    • false (predeterminado): Se ejecuta una sola sentencia SQL a la vez.

    Nota

    Este parámetro solo es compatible con ejecuciones de prueba en el entorno de desarrollo de datos.

    Otros

    Parámetros personalizados de Spark Configuration. Agregue parámetros de propiedades específicos de Spark.

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

    Nota

    DataWorks permite configurar parámetros globales de Spark a nivel de espacio de trabajo para cada módulo de DataWorks. Puede especificar si la prioridad de los parámetros globales de Spark es mayor que la de los parámetros de Spark configurados dentro de un módulo específico. Para obtener más información sobre la configuración de parámetros globales de Spark, consulte Configure global Spark parameters.

    Clúster Hadoop: EMR on ECS

    Parámetro avanzado

    Descripción

    queue

    La cola de programación para el envío de trabajos. El valor predeterminado es 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 sentencias SQL. Valores válidos:

    • true: Se ejecutan varias sentencias SQL a la vez.

    • false (predeterminado): Se ejecuta una sola sentencia SQL a la vez.

    Nota

    Este parámetro solo es compatible con ejecuciones de prueba en el entorno de desarrollo de datos.

    USE_GATEWAY

    Especifica si se deben enviar trabajos a través de un clúster Gateway. Valores válidos:

    • true: Los trabajos se envían a través de un clúster Gateway.

    • false (predeterminado): Los trabajos no se envían a través de un clúster Gateway. En su lugar, se envían al nodo principal de forma predeterminada.

    Nota

    Si el clúster del nodo actual no está asociado con un clúster Gateway, establecer manualmente este parámetro en true provocará que fallen los envíos posteriores de trabajos EMR.

    Otros

    Parámetros personalizados de Spark Configuration. Agregue parámetros de propiedades específicos de Spark.

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

    Nota
    • DataWorks permite configurar parámetros globales de Spark a nivel de espacio de trabajo para cada módulo de DataWorks. Puede especificar si la prioridad de los parámetros globales de Spark es mayor que la de los parámetros de Spark configurados dentro de un módulo específico.

    • Para habilitar el control de acceso Ranger, agregue spark.hadoop.fs.oss.authorization.method=ranger a la global Spark parameter configurations para garantizar que el control de acceso Ranger surta efecto.

    Ejecutar una tarea SQL

    1. En Run Configuration, seleccione y configure el Compute Resource y el Resource Group.

      Nota
      • También puede configurar CUs for Scheduling según los recursos necesarios para la ejecución de la tarea. El valor predeterminado de CU es 0.25.

      • Para acceder a orígenes de datos a través de Internet o en una VPC, utilice un resource group para programación que haya pasado la prueba de conectividad con el origen de datos. Para obtener más información, consulte Configure network connectivity.

    2. En el cuadro de diálogo de parámetros de la barra de herramientas, seleccione el origen de datos correspondiente y haga clic en Run para ejecutar la tarea SQL.

    (Opcional) Configurar parámetros de asignación

    Para pasar los resultados de consulta de este nodo a nodos descendentes, vaya a la sección Node Context Parameters en el panel Scheduling Settings del lado derecho y haga clic en Add Assignment Parameter. El sistema agrega automáticamente un parámetro de salida llamado outputs. El valor de este parámetro es el resultado de la consulta de la última línea de código en este nodo. Para obtener más información, consulte Use node context parameters.

  2. Para ejecutar la tarea del nodo periódicamente, configure la información de programación según sus requisitos empresariales. Para obtener más información, consulte Configure schedule settings.

    Nota

    Si necesita personalizar el entorno de componentes, puede crear una custom image basada en la imagen oficial dataworks_emr_base_task_pod y use the image in Data Development.

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

  3. Una vez configurada la tarea del nodo, debe desplegar el nodo. Para obtener más información, consulte Deploy a node.

  4. Después de desplegar la tarea, puede consultar el estado de ejecución de las tareas programadas en Operation Center. Para obtener más información, consulte View scheduled tasks.

Preguntas frecuentes