Todos os produtos
Search
Central de documentação

DataWorks:Criar um nó EMR Spark SQL

Última atualização: Jul 20, 2026

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

Pré-requisitos

  • Para personalizar o ambiente do componente antes do desenvolvimento do nó, crie uma custom image com base na imagem oficial dataworks_emr_base_task_pod e use the image in DataStudio.

    Por exemplo, é possível substituir um pacote JAR do Spark ou depender de libraries, files ou JAR packages específicos ao criar uma imagem personalizada.

  • Registre um cluster EMR no DataWorks. Para mais informações, consulte Legacy Data Development: Bind EMR compute resources.

  • Os usuários RAM devem ter as permissões necessárias. O proprietário ou administrador do workspace precisa adicionar o usuário RAM ao workspace e atribuir a função Development ou Workspace Administrator. A função Workspace Administrator concede permissões amplas; portanto, atribua-a com cautela. Para mais informações, consulte Add members to a workspace.

  • Adquira e configure um grupo de recursos, incluindo a vinculação a um workspace e a definição das configurações de rede. Para mais informações, consulte Use a serverless resource group.

  • Crie um fluxo de negócios. No DataStudio, todos os nós de desenvolvimento são organizados em fluxos de negócios. Para mais informações, consulte Create a business flow.

  • Caso suas tarefas exijam um ambiente de desenvolvimento específico, use o DataWorks para construir uma imagem personalizada com os componentes necessários. Para mais informações, consulte Custom images.

Limitações

  • Esse tipo de tarefa pode ser executado apenas em um serverless resource group (recomendado) ou em um grupo de recursos exclusivo para agendamento. Se for necessário usar uma imagem no desenvolvimento de dados, utilize um grupo de recursos serverless.

  • Para gerenciar metadados de um cluster DataLake ou cluster personalizado no DataWorks, configure o EMR-HOOK no cluster. Sem essa configuração, o DataWorks não consegue exibir metadados em tempo real, gerar logs de auditoria, fornecer linhagem de dados ou executar tarefas de governança relacionadas ao EMR. Para mais informações sobre como configurar o EMR-HOOK, consulte Configure EMR-HOOK for Spark SQL.

  • A linhagem de dados é compatível com clusters EMR Serverless Spark, mas não com clusters EMR on ACK Spark.

  • O registro visual de funções é suportado para clusters DataLake e clusters personalizados, mas não para clusters EMR on ACK Spark ou EMR Serverless Spark.

Observações

Se você ativou o controle de acesso Ranger para Spark no cluster EMR associado ao workspace atual:

  • As tarefas Spark que usam a imagem padrão suportam esse recurso automaticamente.

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

Etapa 1: Criar um nó

  1. Faça login no console do DataWorks. Na região de destino, clique em Data Development and O&M > Data Development no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.

  2. Crie um nó EMR Spark SQL.

    1. Clique com o botão direito no fluxo de negócios desejado e escolha Create Node > EMR > EMR Spark SQL.

      Nota

      Alternativamente, passe o mouse sobre Create e escolha Create Node > EMR > EMR Spark SQL.

    2. Na caixa de diálogo Create Node, defina Name, Compute Engine Instance, Node Type e Path. Clique em Confirm para abrir o editor de nós.

      Nota

      O nome do nó pode conter letras maiúsculas, letras minúsculas, caracteres chineses, dígitos, sublinhados (_) e pontos (.).

Etapa 2: Desenvolver a tarefa

No editor de nós EMR Spark SQL, clique duas vezes no nó criado para abrir a página de desenvolvimento da tarefa.

Escrever código SQL

Defina variáveis no formato ${variable_name} e atribua valores no painel Scheduling Settings > Scheduling Parameter para habilitar a passagem dinâmica de parâmetros durante execuções agendadas. Para mais informações sobre os formatos suportados, consulte Formats of scheduling parameters. O código de exemplo a seguir é fornecido.

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
  • O tamanho de uma instrução SQL não pode exceder 130 KB.

  • Se houver vários recursos de computação EMR vinculados ao seu workspace, selecione aquele necessário para sua tarefa. Esta etapa é desnecessária se apenas um recurso estiver vinculado.

(Opcional) Configurações avançadas

Configure propriedades específicas do Spark nas advanced settings do nó. Para mais informações sobre as propriedades do Spark, consulte Spark Configuration. Os parâmetros avançados disponíveis variam conforme o tipo de cluster EMR, conforme descrito nas tabelas a seguir.

Datalake and custom: EMR on ECS

Parâmetro

Descrição

queue

Fila de agendamento para envio dos jobs. Valor padrão: default. Para mais informações sobre o EMR YARN, consulte Basic queue configurations.

priority

Prioridade da tarefa. Valor padrão: 1.

FLOW_SKIP_SQL_ANALYZE

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

  • true: Executa múltiplas instruções SQL por execução.

  • false (padrão): Executa uma única instrução SQL por execução.

Nota

Este parâmetro só pode ser utilizado para execuções de teste no ambiente de desenvolvimento.

ENABLE_SPARKSQL_JDBC

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

  • true: Envia o código SQL usando o método JDBC. Se um cluster EMR não tiver o service Kyuubi, o código será enviado ao Spark Thrift Server. Caso o cluster possua o service Kyuubi, o código será enviado ao Kyuubi, permitindo especificar parâmetros personalizados do Spark.

    Ambos os métodos de envio suportam linhagem de dados. No entanto, para tarefas enviadas ao Thrift Server, a saída de metadados não está disponível.

  • false (padrão): Indica que o código SQL é enviado no modo cluster via Spark-submit. Neste modo de envio, tanto o Spark 2 quanto o Spark 3 suportam linhagem de metadados e informações de saída. Também é possível especificar parâmetros personalizados do Spark.

    Nota
    • Ao usar o modo cluster spark-submit, arquivos e diretórios temporários são criados no diretório /tmp do HDFS do cluster por padrão. Certifique-se de ter permissões de leitura e gravação neste diretório.

    • Se utilizar o modo cluster spark-submit, você pode anexar diretamente parâmetros personalizados do SparkConf nas configurações avançadas. Ao enviar o código, o DataWorks adiciona automaticamente os novos parâmetros ao comando. Exemplo: "spark.driver.memory" : "2g".

DATAWORKS_SESSION_DISABLE

Este parâmetro aplica-se apenas a execuções de teste no ambiente de desenvolvimento. Valores válidos:

  • true: Uma nova conexão JDBC é criada para cada instrução SQL executada.

  • false (padrão): A mesma conexão JDBC é reutilizada ao executar diferentes instruções SQL em um 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

Adicione parâmetros personalizados de Spark Configuration.

Use o seguinte formato: "spark.eventLog.enabled":false . O DataWorks anexa automaticamente esses parâmetros ao comando de envio usando o formato --conf key=value. Para mais informações sobre configurações de parâmetros, consulte Set global Spark parameters.

Nota
  • O DataWorks permite definir parâmetros globais do Spark no nível do workspace para diferentes módulos. É possível especificar se os parâmetros globais do Spark têm precedência sobre os parâmetros dentro de um módulo específico.

  • Para ativar o controle de acesso Ranger, adicione a configuração spark.hadoop.fs.oss.authorization.method=ranger em Set global Spark parameters. Isso garante que o controle de acesso baseado no Ranger entre em vigor.

EMR serverless spark

Para mais informações sobre as configurações de parâmetros, consulte Set parameters for submitting a Spark job.

Parâmetro

Descrição

FLOW_SKIP_SQL_ANALYZE

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

  • true: Executa múltiplas instruções SQL por execução.

  • false (padrão): Executa uma única instrução SQL por execução.

Nota

Este parâmetro só pode ser utilizado para execuções de teste no ambiente de desenvolvimento.

DATAWORKS_SESSION_DISABLE

Especifica o método de envio da tarefa. Ao executar uma tarefa no Data Development, ela é enviada ao SQL Compute por padrão. Use este parâmetro para definir se a tarefa deve ser enviada ao SQL Compute ou a uma fila.

  • true: A tarefa é enviada para uma fila. Por padrão, utiliza-se a fila especificada ao vincular o recurso de computação. Se você definir o parâmetro DATAWORKS_SESSION_DISABLE como true, poderá configurar o parâmetro SERVERLESS_QUEUE_NAME para especificar a fila de destino quando a tarefa for executada no Data Development.

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

    Nota

    Este parâmetro tem efeito apenas para execuções no ambiente Data Development, não se aplicando a execuções agendadas.

SERVERLESS_RELEASE_VERSION

Versão do mecanismo Spark. Por padrão, é usada a Default Engine Version configurada para o cluster na página Cluster Management do Management Center. Defina este parâmetro para substituir o padrão para uma tarefa específica.

Nota

O parâmetro SERVERLESS_RELEASE_VERSION nas configurações avançadas só entra em vigor quando a sessão do SQL Compute especificada para o cluster registrado não está em execução no console do EMR Serverless Spark.

SERVERLESS_QUEUE_NAME

Fila de recursos para onde as tarefas são enviadas. Quando uma tarefa é enviada para uma fila, a Default Resource Queue configurada para o cluster na página Cluster Management do Management Center é usada por padrão. Caso necessite de isolamento e gerenciamento de recursos, adicione filas. Para mais informações, consulte Manage resource queues.

Opções de configuração:

Nota
  • O parâmetro SERVERLESS_QUEUE_NAME nas configurações avançadas só entra em vigor quando a sessão do SQL Compute especificada para o cluster registrado não está em execução no console do EMR Serverless Spark.

  • Ao executar no Data Development: Primeiro, defina o parâmetro DATAWORKS_SESSION_DISABLE como true para enviar tarefas para uma fila. Isso permite que o parâmetro SERVERLESS_QUEUE_NAME tenha efeito.

  • Ao executar agendadamente pelo Operation Center: As tarefas são sempre enviadas para uma fila, nunca para o SQL Compute.

SERVERLESS_SQL_COMPUTE

Sessão do SQL Compute que deseja utilizar. Por padrão, o Default SQL Compute configurado para o cluster na página Cluster Management do Management Center é utilizado. Se quiser usar sessões diferentes do SQL Compute para tarefas distintas, especifique-as aqui. Para mais informações sobre como criar e gerenciar sessões do SQL Compute, consulte Manage SQL Compute sessions.

Outros

Adicione parâmetros personalizados de Spark Configuration.

Use o seguinte formato: "spark.eventLog.enabled":"false". O DataWorks adiciona automaticamente os parâmetros ao código enviado ao cluster EMR no formato --conf key=value.

Nota

O DataWorks permite definir parâmetros globais do Spark no nível do workspace para diferentes módulos. É possível especificar se os parâmetros globais do Spark têm precedência sobre os parâmetros dentro de um módulo específico. Para mais informações, consulte Set global Spark parameters.

Salvar e executar a tarefa

Na barra de ferramentas, clique no ícone Salvar 保存 para salvar suas instruções SQL e clique no ícone Executar 运行 para rodar a tarefa SQL.

Na caixa de diálogo de execução, selecione um grupo de recursos que tenha uma conexão de rede bem-sucedida com seu service Spark. Se o código do nó utilizar variáveis, atribua valores constantes a elas durante a execução de depuração. Para configurar o grupo de recursos e os parâmetros para execuções agendadas, consulte Configure node scheduling. Para mais informações sobre depuração de tarefas, consulte Task debugging process.

Nota

Caso precise alterar os valores dos parâmetros no código, clique em Advanced Run na barra de ferramentas. Para mais informações sobre a lógica de atribuição de valores aos 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

Descrição

FLOW_SKIP_SQL_ANALYZE

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

  • true: Executa múltiplas instruções SQL por execução.

  • false (padrão): Executa uma única instrução SQL por execução.

Nota

Este parâmetro só pode ser utilizado para execuções de teste no ambiente de desenvolvimento.

Outros

Adicione parâmetros personalizados de Spark Configuration.

Use o seguinte formato: "spark.eventLog.enabled":false. O DataWorks adiciona automaticamente os parâmetros ao código enviado ao cluster EMR no formato --conf key=value.

Nota

O DataWorks permite definir parâmetros globais do Spark no nível do workspace para diferentes módulos. É possível especificar se os parâmetros globais do Spark têm precedência sobre os parâmetros dentro de um módulo específico. Para mais informações, consulte Set global Spark parameters.

Hadoop: EMR on ECS

Parâmetro

Descrição

queue

Fila de agendamento para envio dos jobs. Valor padrão: default. Para mais informações sobre o EMR YARN, consulte Basic queue configurations.

priority

Prioridade da tarefa. Valor padrão: 1.

FLOW_SKIP_SQL_ANALYZE

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

  • true: Executa múltiplas instruções SQL por execução.

  • false (padrão): Executa uma única instrução SQL por execução.

Nota

Este parâmetro só pode ser utilizado para execuções de teste no ambiente de desenvolvimento.

USE_GATEWAY

Define se o job do nó deve ser enviado através de um cluster gateway. Valores válidos:

  • true: O job é enviado através de um cluster gateway.

  • false (padrão): O job não é enviado através de um cluster gateway. Por padrão, o job é enviado para um nó header.

Nota

Se nenhum cluster gateway estiver associado ao cluster onde o nó reside, os envios subsequentes de jobs EMR falharão caso você defina manualmente este parâmetro como true.

Outros

Adicione parâmetros personalizados de Spark Configuration.

Use o seguinte formato: "spark.eventLog.enabled":false. O DataWorks adiciona 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 Set global Spark parameters.

Nota
  • O DataWorks permite definir parâmetros globais do Spark no nível do workspace para diferentes módulos. É possível especificar se os parâmetros globais do Spark têm precedência sobre os parâmetros dentro de um módulo específico.

  • Para ativar o controle de acesso Ranger, adicione a configuração spark.hadoop.fs.oss.authorization.method=ranger em Set global Spark parameters. Isso garante que o controle de acesso baseado no Ranger entre em vigor.

Executar a tarefa

  1. Na barra de ferramentas, clique no ícone Executar 高级运行. Na caixa de diálogo Parameter, selecione o grupo de recursos de agendamento criado e clique em Running.

    Nota
    • Para acessar recursos de computação em uma rede pública ou Virtual Private Cloud (VPC), use um grupo de recursos de agendamento que tenha passado em um teste de conectividade com tais recursos. Para mais informações, consulte Network connectivity.

    • Se precisar alterar o grupo de recursos para execuções futuras da tarefa, clique no ícone Running with Parameters 高级运行 e selecione o grupo desejado.

    • Ao usar um nó EMR Spark SQL para consultar dados, podem ser retornados no máximo 10.000 registros, e o tamanho total dos dados não pode exceder 10 MB.

  2. Clique no ícone Salvar 保存 para salvar as instruções SQL.

  3. (Opcional) Realize um teste de fumaça (smoke test).

    Caso deseje realizar um teste de fumaça no ambiente de desenvolvimento, execute-o após rodar ou confirmar (commit) o nó. Para mais informações, consulte Perform a smoke test.

Etapa 3: Configurar agendamento

Se desejar que o sistema execute periodicamente uma tarefa no nó, clique em Properties no painel de navegação à direita, na aba de configuração do nó, para definir as propriedades de agendamento conforme suas necessidades de negócio. Para mais informações, consulte Overview.

Nota
  • É obrigatório configurar as propriedades Rerun attribute e Parent Nodes do nó antes de submetê-lo.

  • Para personalizar o ambiente do componente, crie uma custom image baseada na imagem oficial dataworks_emr_base_task_pod e use it in DataStudio.

    Por exemplo, é possível substituir pacotes JAR do Spark ou incluir libraries, files ou JAR packages específicos ao criar uma imagem personalizada.

Etapa 4: Implantar a tarefa

Após configurar uma tarefa em um nó, confirme e implante a tarefa. Depois disso, o sistema executará a tarefa regularmente com base nas configurações de agendamento.

  1. Clique no ícone 保存 na barra de ferramentas superior para salvar a tarefa.

  2. Clique no ícone 提交 na barra de ferramentas superior para confirmar (commit) a tarefa.

    Na caixa de diálogo Submit, configure o parâmetro Change description. Em seguida, decida se deseja revisar o código da tarefa após o commit, conforme suas necessidades de negócio.

    Nota
    • Configure os parâmetros Rerun e Parent Nodes na aba Properties antes de confirmar a tarefa.

    • Utilize o recurso de revisão de código para garantir a qualidade das tarefas e evitar erros de execução causados por código inválido. Se a revisão de código estiver ativada, o código confirmado só poderá ser implantado após aprovação. Para mais informações, consulte Code review.

Se utilizar um workspace no modo padrão, implante a tarefa no ambiente de produção após confirmá-la. Para implantar uma tarefa em um nó, clique em Deploy no canto superior direito da aba de configuração do nó. Para mais informações, consulte Deploy a node.

Mais operações

Depois de confirmar e implantar a tarefa, ela será executada periodicamente conforme as configurações de agendamento. Clique em Operation Center no canto superior direito da aba de configuração do nó correspondente para acessar o Operation Center e visualizar o status de agendamento da tarefa. Para mais informações, consulte Manage scheduled tasks.

FAQ