Todos os produtos
Search
Central de documentação

DataWorks:Nó EMR Spark SQL

Última atualização: Jun 27, 2026

Crie um nó E-MapReduce (EMR) Spark SQL para processar dados estruturados com um mecanismo de consulta SQL distribuído e aumentar a eficiência na execução de jobs.

Pré-requisitos

  • Antes de iniciar o desenvolvimento do nó, caso necessite de um ambiente de componentes personalizados, crie uma imagem personalizada com base na imagem oficial dataworks_emr_base_task_pod e utilize-a no Data Studio. Para mais informações, consulte Criar uma imagem personalizada e Usar imagens no desenvolvimento de dados.

    Por exemplo, ao criar uma imagem personalizada, substitua pacotes JAR do Spark ou adicione dependências de libraries, files ou JAR packages específicos.

  • Crie um cluster Alibaba Cloud EMR e registre-o no DataWorks. Para mais informações, consulte Novo Data Studio: Anexar um recurso de computação EMR.

  • (Opcional, para usuários RAM) Adicione o usuário do Resource Access Management (RAM) responsável pelo desenvolvimento da tarefa ao workspace e atribua a ele a função Development ou Workspace Administrator (esta função inclui permissões amplas e deve ser concedida com cautela). Para mais informações, consulte Adicionar membros ao workspace.

    Se você estiver usando uma conta raiz, pule esta etapa.
  • Use uma Imagem personalizada para construir um ambiente de desenvolvimento específico para sua tarefa.

Limitações

  • Os nós EMR Shell executam apenas em um grupo de recursos serverless (recomendado) ou em um grupo de recursos exclusivo para agendamento. O uso de imagem personalizada no desenvolvimento de dados exige um grupo de recursos serverless.

  • Para gerenciar metadados de um cluster DataLake ou personalizado no DataWorks, configure primeiro o EMR-HOOK no cluster. Para mais informações, consulte Configurar EMR-HOOK para Spark SQL.

    Nota

    Sem o EMR-HOOK configurado no cluster, não é possível visualizar metadados em tempo real, gerar logs de auditoria, visualizar linhagem de dados ou executar tarefas de governança relacionadas ao EMR no DataWorks.

  • Clusters Spark EMR on ACK não suportam a visualização de linhagem de dados. Já os clusters EMR Serverless Spark oferecem suporte a esse recurso.

  • O registro de funções pela interface é suportado em clusters DataLake e personalizados, mas não está disponível para clusters EMR on ACK Spark ou EMR Serverless Spark.

Observações

Caso tenha ativado o controle de acesso Ranger para Spark no cluster EMR associado ao workspace atual:

  • Tarefas Spark que utilizam a imagem padrão suportam automaticamente este recurso.

  • Para executar uma tarefa Spark com imagem personalizada, envie um ticket ao suporte técnico solicitando a atualização da imagem.

Procedimento

  1. Na aba de configuração do nó EMR Spark SQL, execute as seguintes operações de desenvolvimento.

    Desenvolver código SQL

    No editor SQL, escreva o código da tarefa. Defina variáveis usando o formato ${variable_name} e atribua seus valores na seção Scheduling Settings > Scheduling Parameters, localizada no lado direito da aba de configuração do nó, para passar parâmetros dinamicamente às tarefas agendadas. Para mais detalhes sobre o uso de parâmetros de agendamento, consulte Fontes e expressões de parâmetros de agendamento. O código abaixo serve como exemplo.

    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 do nó EMR

    Na seção EMR Node Parameters do painel Run Configuration, configure os seguintes parâmetros:

    • Spark parameter: Parâmetros de propriedade nativos do Spark. Para mais informações, consulte a configuração do Spark open source. Carregue diretamente um modelo de configuração Spark do Serverless Spark sem entrada manual, simplificando o processo de configuração e garantindo consistência.

    • DataWorks parameters: Os parâmetros avançados configuráveis variam conforme o tipo de cluster EMR. A tabela a seguir descreve os detalhes.

    Cluster DataLake/Cluster personalizado: EMR on ECS

    Parâmetro avançado

    Descrição

    queue

    Fila de agendamento para envio de jobs. O valor padrão é default. Para mais informações sobre o EMR YARN, consulte Configurações básicas de fila.

    priority

    Prioridade da tarefa. Valor padrão: 1.

    FLOW_SKIP_SQL_ANALYZE

    Modo de execução de instruções SQL. Valores válidos:

    • true: Várias instruções SQL são executadas simultaneamente.

    • false (padrão): Uma única instrução SQL é executada por vez.

    Nota

    Este parâmetro é suportado apenas para execuções de teste no ambiente de desenvolvimento de dados.

    ENABLE_SPARKSQL_JDBC

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

    • true: O código SQL é enviado via JDBC. Se o cluster EMR não possuir o serviço Kyuubi, o código será enviado ao Spark Thrift-Server. Caso o cluster tenha o serviço Kyuubi, o envio ocorre para o Kyuubi através de JDBC, com suporte a parâmetros Spark personalizados.

      Ambos os métodos suportam linhagem de metadados. No entanto, tarefas enviadas ao Thrift-Server não apresentam informações de saída para as tarefas de nó correspondentes nos metadados.

    • false (padrão): O código SQL é enviado utilizando o método de cluster Spark-submit. Neste modo, tanto o Spark2 quanto o Spark3 suportam linhagem de metadados e informações de saída. Parâmetros Spark personalizados também são suportados.

      Nota
      • O método de cluster Spark-submit cria arquivos e diretórios temporários no diretório /tmp do HDFS do cluster EMR por padrão. Certifique-se de que o diretório possui permissões de leitura e escrita.

      • Ao usar o método de cluster Spark-submit, anexe diretamente parâmetros SparkConf personalizados nas configurações avançadas. O DataWorks adiciona automaticamente os novos parâmetros ao comando quando você envia o código. Exemplo: "spark.driver.memory" : "2g".

    DATAWORKS_SESSION_DISABLE

    Parâmetro aplicável a execuções de teste no ambiente de desenvolvimento. Valores válidos:

    • true: Uma nova conexão JDBC é criada sempre que uma instrução SQL é executada.

    • false (padrão): A mesma conexão JDBC é reutilizada ao executar diferentes instruções SQL dentro de um único nó.

    Nota

    Quando este parâmetro está definido como false, o yarn applicationId do Hive não é impresso. Para imprimir o yarn applicationId, defina este parâmetro como true.

    Outros

    Parâmetros personalizados de Configuração do Spark. Adicione parâmetros de propriedade específicos do Spark.

    Formato de configuração: "spark.eventLog.enabled" : false, "spark.eventLog.memory" : "12g". O DataWorks anexa automaticamente os parâmetros ao código enviado ao cluster EMR no formato: --conf key=value. Para mais informações sobre configurações de parâmetros, consulte Configurar parâmetros globais do Spark.

    Nota
    • O DataWorks permite configurar parâmetros globais do Spark no nível do workspace para cada módulo. Especifique se a prioridade dos parâmetros globais deve ser superior à dos parâmetros configurados dentro de um módulo específico.

    • Para ativar o controle de acesso Ranger, adicione spark.hadoop.fs.oss.authorization.method=ranger às configurações globais de parâmetros do Spark para garantir que o controle de acesso Ranger tenha efeito.

    Cluster EMR Serverless Spark

    Para informações sobre as configurações de parâmetros relacionados, consulte Configurações de parâmetros de tarefa Spark.

    Parâmetro avançado

    Descrição

    FLOW_SKIP_SQL_ANALYZE

    Modo de execução de instruções SQL. Valores válidos:

    • true: Várias instruções SQL são executadas simultaneamente.

    • false (padrão): Uma única instrução SQL é executada por vez.

    Nota

    Este parâmetro é suportado apenas para execuções de teste no ambiente de desenvolvimento de dados.

    DATAWORKS_SESSION_DISABLE

    Método de envio da tarefa. Durante o desenvolvimento de dados, as tarefas são enviadas ao SQL Compute para execução por padrão. Use este parâmetro para especificar se a tarefa deve ser executada via SQL Compute ou enviada a uma fila.

    • true: A tarefa é enviada a uma fila para execução. Por padrão, utiliza-se a fila padrão especificada quando o recurso de computação foi associado. Quando DATAWORKS_SESSION_DISABLE está definido como true, configure o parâmetro SERVERLESS_QUEUE_NAME para especificar a fila de destino durante o desenvolvimento de dados.

    • false (padrão): A tarefa é enviada ao SQL Compute para execução.

      Nota

      Este parâmetro tem efeito apenas durante a execução no desenvolvimento de dados, não se aplicando a execuções agendadas.

    SERVERLESS_RELEASE_VERSION

    Versão do mecanismo Spark. Por padrão, utiliza-se a Default Engine Version configurada nas definições do cluster em Compute Resource no Management Center. Para definir uma versão diferente do mecanismo para uma tarefa específica, configure este parâmetro.

    Nota

    O parâmetro SERVERLESS_RELEASE_VERSION nas configurações avançadas só entra em vigor quando o SQL Compute (sessão) especificado para o cluster registrado estiver no estado parado no console EMR Serverless Spark.

    SERVERLESS_QUEUE_NAME

    Fila de recursos para envio de tarefas. Quando uma tarefa é configurada para ser enviada a uma fila, a Default Resource Queue definida nas configurações do cluster em Clusters no Management Center é usada por padrão. Caso tenha requisitos de isolamento e gerenciamento de recursos, adicione novas filas. Para mais informações, consulte Gerenciar filas de recursos.

    Métodos de configuração:

    • Especifique a fila de recursos para envio da tarefa configurando os parâmetros do nó.

    • Especifique a fila de recursos para envio da tarefa configurando os parâmetros globais do Spark.

    Nota
    • O parâmetro SERVERLESS_QUEUE_NAME nas configurações avançadas só entra em vigor quando o SQL Compute (sessão) especificado para o cluster registrado estiver no estado parado no console EMR Serverless Spark.

    • Durante a execução no desenvolvimento de dados: Defina primeiro DATAWORKS_SESSION_DISABLE como true para que as tarefas sejam enviadas a uma fila. Somente assim o parâmetro SERVERLESS_QUEUE_NAME terá efeito para especificar a fila da tarefa.

    • Durante a execução agendada no Operation Center: As tarefas são obrigatoriamente enviadas a uma fila para execução, não podendo ser submetidas ao SQL Compute.

    SERVERLESS_SQL_COMPUTE

    SQL Compute (sessão SQL) a ser utilizado. Por padrão, usa-se o Default SQL Compute configurado nas definições do cluster em Compute Resource no Management Center. Para definir uma sessão SQL diferente para uma tarefa específica, configure este parâmetro. Para saber como criar e gerenciar sessões SQL, consulte Gerenciar sessões do SQL Compute.

    Outros

    Parâmetros personalizados de Configuração do Spark. Adicione parâmetros de propriedade específicos do Spark.

    Formato de configuração: "spark.eventLog.enabled": false. O DataWorks anexa automaticamente os parâmetros ao código enviado ao cluster EMR no formato: --conf key=value.

    Nota

    O DataWorks permite configurar parâmetros globais do Spark no nível do workspace para cada módulo. Especifique se a prioridade dos parâmetros globais deve ser superior à dos parâmetros configurados dentro de um módulo específico. Para mais detalhes sobre a configuração de parâmetros globais do Spark, consulte Configurar parâmetros globais do Spark.

    Cluster Spark: EMR on ACK

    Parâmetro avançado

    Descrição

    FLOW_SKIP_SQL_ANALYZE

    Modo de execução de instruções SQL. Valores válidos:

    • true: Várias instruções SQL são executadas simultaneamente.

    • false (padrão): Uma única instrução SQL é executada por vez.

    Nota

    Este parâmetro é suportado apenas para execuções de teste no ambiente de desenvolvimento de dados.

    Outros

    Parâmetros personalizados de Configuração do Spark. Adicione parâmetros de propriedade específicos do Spark.

    Formato de configuração: "spark.eventLog.enabled": false. O DataWorks anexa automaticamente os parâmetros ao código enviado ao cluster EMR no formato: --conf key=value.

    Nota

    O DataWorks permite configurar parâmetros globais do Spark no nível do workspace para cada módulo. Especifique se a prioridade dos parâmetros globais deve ser superior à dos parâmetros configurados dentro de um módulo específico. Para mais detalhes sobre a configuração de parâmetros globais do Spark, consulte Configurar parâmetros globais do Spark.

    Cluster Hadoop: EMR on ECS

    Parâmetro avançado

    Descrição

    queue

    Fila de agendamento para envio de jobs. O valor padrão é default. Para mais informações sobre o EMR YARN, consulte Configurações básicas de fila.

    priority

    Prioridade da tarefa. Valor padrão: 1.

    FLOW_SKIP_SQL_ANALYZE

    Modo de execução de instruções SQL. Valores válidos:

    • true: Várias instruções SQL são executadas simultaneamente.

    • false (padrão): Uma única instrução SQL é executada por vez.

    Nota

    Este parâmetro é suportado apenas para execuções de teste no ambiente de desenvolvimento de dados.

    USE_GATEWAY

    Define se os jobs devem ser enviados através de um cluster Gateway. Valores válidos:

    • true: Os jobs são enviados através de um cluster Gateway.

    • false (padrão): Os jobs não são enviados através de um cluster Gateway. Em vez disso, são enviados ao nó principal por padrão.

    Nota

    Se o cluster do nó atual não estiver associado a um cluster Gateway, definir manualmente este parâmetro como true causará falha nos envios subsequentes de jobs EMR.

    Outros

    Parâmetros personalizados de Configuração do Spark. Adicione parâmetros de propriedade específicos do Spark.

    Formato de configuração: "spark.eventLog.enabled": false. O DataWorks anexa automaticamente os parâmetros ao código enviado ao cluster EMR no formato: --conf key=value. Para mais informações sobre configurações de parâmetros, consulte Configurar parâmetros globais do Spark.

    Nota
    • O DataWorks permite configurar parâmetros globais do Spark no nível do workspace para cada módulo. Especifique se a prioridade dos parâmetros globais deve ser superior à dos parâmetros configurados dentro de um módulo específico.

    • Para ativar o controle de acesso Ranger, adicione spark.hadoop.fs.oss.authorization.method=ranger às configurações globais de parâmetros do Spark para garantir que o controle de acesso Ranger tenha efeito.

    Executar uma tarefa SQL

    1. Em Run Configuration, selecione e configure o Compute Resource e o Resource Group.

      Nota
      • Configure também as CUs for Scheduling conforme os recursos necessários para a execução da tarefa. O valor padrão de CU é 0.25.

      • Para acessar fontes de dados pela Internet ou em uma VPC, utilize um grupo de recursos para agendamento que tenha aprovado no teste de conectividade com a fonte de dados. Para mais informações, consulte Configurar conectividade de rede.

    2. Na caixa de diálogo de parâmetros da barra de ferramentas, selecione a fonte de dados correspondente e clique em Run para executar a tarefa SQL.

    (Opcional) Configurar parâmetros de atribuição

    Para passar os resultados da consulta deste nó para nós downstream, acesse a seção Node Context Parameters no painel Scheduling Settings à direita e clique em Add Assignment Parameter. O sistema adiciona automaticamente um parâmetro de saída chamado outputs. O valor deste parâmetro corresponde ao resultado da consulta da última linha de código deste nó. Para mais informações, consulte Usar parâmetros de contexto do nó.

  2. Para executar a tarefa do nó periodicamente, configure as informações de agendamento conforme seus requisitos de negócio. Para mais informações, consulte Configurar definições de agendamento.

    Nota

    Caso precise personalizar o ambiente de componentes, crie uma imagem personalizada baseada na imagem oficial dataworks_emr_base_task_pod e use a imagem no Desenvolvimento de Dados.

    Por exemplo, ao criar uma imagem personalizada, substitua pacotes JAR do Spark ou dependa de libraries, files ou JAR packages específicos.

  3. Após configurar a tarefa do nó, implante-o. Para mais informações, consulte Implantar um nó.

  4. Depois que a tarefa for implantada, visualize o status de execução das tarefas agendadas no Operation Center. Para mais informações, consulte Visualizar tarefas agendadas.

Perguntas frequentes