Todos os produtos
Search
Central de documentação

DataWorks:Nó EMR Spark SQL

Última atualização: Jul 20, 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 da execução.

Pré-requisitos

  • Antes de iniciar o desenvolvimento do nó, caso precise de um ambiente de componente personalizado, 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, você pode substituir pacotes JAR do Spark ou adicionar 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 de tarefas 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 para 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 em 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, realize 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, no lado direito da aba de configuração do nó, para passar parâmetros dinamicamente às tarefas agendadas. Para mais informações, consulte Fontes e expressões de parâmetros de agendamento. 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 configuração do Spark open source. Carregue diretamente um modelo de configuração do Spark do Serverless Spark para simplificar a configuração e garantir consistência.

    • DataWorks parameters: Os parâmetros avançados disponíveis variam conforme o tipo de cluster EMR, conforme descrito na tabela a seguir.

    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 tem suporte 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 service Kyuubi, o código será enviado ao Spark Thrift-Server. Caso o cluster tenha o service Kyuubi, o envio ocorre para o Kyuubi via JDBC, com suporte a parâmetros personalizados do Spark.

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

    • 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 personalizados do Spark também são aceitos.

      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 utilizar o método de cluster Spark-submit, adicione parâmetros SparkConf personalizados diretamente nas configurações avançadas. O DataWorks insere automaticamente os novos parâmetros no comando durante o envio do 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. É possível definir se a prioridade dos parâmetros globais será superior à dos parâmetros configurados em um módulo específico.

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

    Cluster EMR Serverless Spark

    Para definiçõ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 tem suporte 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. Utilize este parâmetro para especificar se a tarefa 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 especificada durante a associação do recurso de computação. Com DATAWORKS_SESSION_DISABLE definido como true, configure o parâmetro SERVERLESS_QUEUE_NAME para indicar a fila de destino durante o desenvolvimento.

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

      Nota

      Este parâmetro surte 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 definida nas configurações do cluster em Compute Resource no Management Center. Configure este parâmetro para definir uma versão diferente para uma tarefa específica.

    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 parado no console EMR Serverless Spark.

    SERVERLESS_QUEUE_NAME

    Fila de recursos para envio de tarefas. Quando configurada para execução em fila, utiliza-se por padrão a Default Resource Queue definida nas configurações do cluster em Clusters no Management Center. Caso necessite 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 de tarefas configurando os parâmetros do nó.

    • Defina a fila de recursos para envio de tarefas 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 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, emprega-se o Default SQL Compute configurado nas definições do cluster em Compute Resource no Management Center. Configure este parâmetro para estabelecer uma sessão SQL distinta para uma tarefa específica. Para detalhes sobre criação e gerenciamento de 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 possibilita a configuração de parâmetros globais do Spark no nível do workspace para cada módulo. Você pode determinar se a prioridade dos parâmetros globais supera a dos parâmetros definidos em um módulo específico. Para mais informações 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 tem suporte 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 viabiliza a configuração de parâmetros globais do Spark no nível do workspace para cada módulo. É possível determinar se a prioridade dos parâmetros globais supera a dos parâmetros definidos em um módulo específico. Para mais informações 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 tem suporte apenas para execuções de teste no ambiente de desenvolvimento de dados.

    USE_GATEWAY

    Define se os jobs serão enviados por meio 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 passam por um cluster Gateway, sendo enviados diretamente 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. É possível definir se a prioridade dos parâmetros globais será superior à dos parâmetros configurados em um módulo específico.

    • Para ativar o controle de acesso Ranger, adicione spark.hadoop.fs.oss.authorization.method=ranger às configurações de parâmetros globais do Spark para garantir que o controle 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 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 transmitir os resultados da consulta deste nó aos 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 de acordo com seus requisitos de negócio. Para mais informações, consulte Configurar definições de agendamento.

    Nota

    Caso precise personalizar o ambiente do componente, 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 adicione dependências 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 de implantar a tarefa, visualize o status de execução das tarefas agendadas no Operation Center. Para mais informações, consulte Visualizar tarefas agendadas.

Perguntas frequentes