Uma definição de workflow permite criar um Grafo Acíclico Direcionado (DAG) visual ao arrastar e soltar nós e estabelecer dependências entre eles. Este tópico descreve como criar e gerenciar definições de workflow.
Pré-requisitos
Crie um projeto. Para mais informações, consulte Criar um projeto.
Criar um workflow
-
Acesse a aba Project.
Faça login no EMR console com sua conta Alibaba Cloud (conta principal) ou um usuário RAM.
No painel de navegação à esquerda, escolha EMR Studio > Workflow.
Na página Workflow, localize o workspace desejado e clique em Console na coluna Actions.
Na página Project Management, clique no nome de um projeto existente.
No painel de navegação à esquerda, escolha Development > Workflow Definition.
Na página Workflow Definition, clique em Create Workflow.
-
Na página Create Workflow, arraste um nó para a tela. Na caixa de diálogo exibida, configure os parâmetros e clique em OK.
Este exemplo utiliza um nó SHELL. Para mais informações sobre outros tipos de nó, consulte Tipos de nó.
Parâmetro
Descrição
Node Name
Nome do nó. Deve ser único no workflow.
Run Task
-
Normal (padrão): executa o nó durante a execução do workflow.
-
No: ignora o nó durante a execução do workflow.
Description
Descrição da funcionalidade do nó.
Task Priority
Prioridade do nó no workflow. Valor padrão: MEDIUM. Valores válidos:
HIGHEST
HIGH
MEDIUM
LOW
LOWEST
Retries After Failure
Número máximo de tentativas automáticas de reexecução do nó em caso de falha no workflow.
Retry Interval upon Failure
Intervalo entre duas tentativas consecutivas. Unidade: minutos.
Time for Delayed Execution
Tempo de atraso antes da execução do nó. O valor padrão é 0, o que indica execução imediata após a criação. A execução só será atrasada se você especificar um valor maior que 0 para este parâmetro. Unidade: minutos.
Timeout Alert
Esta chave vem desativada por padrão. Ative a chave Timeout Alert para definir uma duração de timeout e selecione pelo menos uma estratégia de timeout.
-
Timeout Alert: envia uma notificação ao grupo de alertas especificado se o tempo de execução do nó exceder a duração de timeout configurada.
-
Task Failed Upon Timeout: marca a instância do nó como falha se o tempo de execução exceder a duração de timeout configurada.
Node to Run Tasks
-
Resource Group for Scheduling (padrão): submete o nó ao grupo de recursos de agendamento do workflow.
-
Worker Node in EMR Cluster (Submitted to YARN): submete o nó a um worker node em um cluster EMR para execução em um contêiner YARN.
AvisoEste modo afeta diretamente o sistema de arquivos ou o ambiente de execução do cluster EMR. Proceda com cautela.
Neste modo, também é possível configurar os seguintes parâmetros:
-
Queues for Scheduling: fila YARN à qual o nó é submetido.
-
Task Execution Container Memory (MB): memória para o contêiner de execução da tarefa. O valor padrão é 1024.
-
Number of vCPUs: número de vCores alocados ao contêiner de execução da tarefa. Padrão: 1.
-
Priority: prioridade do contêiner, de 0 a 100, onde um valor maior indica maior prioridade. Padrão: 0.
-
Execution User: por padrão, o usuário
dolphinschedulersubmete o nó. Em um cluster padrão (não seguro), para definir um usuário de execução personalizado, garanta que o serviço YARN inclua as seguintes configurações:yarn.nodemanager.container-executor.class=org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor
yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users=false
-
NotaPara tarefas baseadas em YARN, como Spark, Hive ou Sqoop, defina o Node to Run Tasks como Worker Node in EMR Cluster (Submitted to YARN). Isso permite aproveitar totalmente os recursos de agendamento e gerenciamento do YARN.
Script
Programa Shell personalizado.
NotaAo executar operações de escrita no script, observe o seguinte:
-
É possível gravar dados em sistemas de armazenamento remoto, como sistemas de arquivos distribuídos, incluindo Alibaba Cloud OSS e HDFS.
-
Não grave dados no sistema de arquivos local do cluster. Operações diretas em caminhos locais, como
/tmp/local_file.txt, não são suportadas.
Resources
Arquivos de recursos necessários para a execução do nó. Carregue esses arquivos primeiramente na página Resource Center, em File Management. Após selecioná-los, referencie-os no script pelos caminhos completos, por exemplo,
path/to/test.txt.Custom Parameters
Parâmetros personalizados do nó que substituem os espaços reservados
${variable}no script. Para mais informações, consulte Parâmetros.Pre-task
Nó ancestral do nó atual.
-
-
Opcional. Configure dependências entre nós.
O EMR Workflow permite configurar dependências personalizadas de nós entre workflows.
Clique no ícone
no lado direito de um nó e arraste a linha de conexão para ligá-lo a outro nó.Selecione uma linha de conexão ou um nó e clique no ícone
no canto superior direito para excluir a dependência ou o nó.
-
Salve o workflow.
No canto superior direito, clique em Save.
-
Na caixa de diálogo exibida, configure os parâmetros e clique em OK.
Parâmetro
Descrição
Name
Nome do workflow.
Description
Descrição da funcionalidade do workflow.
Timeout Alert
Esta chave vem desativada por padrão. Ao ativar a chave Timeout Alert, especifique um Timeout Period. Um alerta será enviado se o tempo de execução exceder este período de timeout.
Execution Policy
Modo de execução das instâncias do workflow. Valores válidos:
Parallel (Padrão): as instâncias do workflow são executadas em paralelo.
Serial Waiting: executa as instâncias do workflow sequencialmente. Cada nova instância aguarda a conclusão da anterior antes de iniciar.
Global Variables
Variável válida para todos os nós do workflow.
Operações em um workflow
Na página Workflow Definition, é possível realizar as seguintes operações.
Operação | Descrição |
Edit | Permite editar apenas definições de workflow no estado Unpublish. |
Run | Permite executar apenas workflows no estado online. Workflows online não podem ser editados. Para mais informações, consulte Executar um workflow. |
Configure Scheduling Time | Apenas workflows online podem ser agendados. O sistema executa automaticamente o workflow conforme o agendamento definido. Após a criação, o status do agendamento torna-se online, mas ele só entra em vigor após ativação na página Schedule Management. Para mais informações sobre como agendar um workflow, consulte Agendar um workflow. |
More |
|
Executar um workflow
A execução de um workflow gera uma nova instância na página Workflow Instance.
Na coluna Actions, clique em Run.
-
Na caixa de diálogo exibida, configure os parâmetros e clique em OK.
Parâmetro
Descrição
Policy upon Failure
Política para tratamento de falhas de nós em um workflow.
Proceed: se um nó falhar, os demais continuam a execução conforme agendado.
Finished (Padrão): se um nó falhar, seus nós downstream são encerrados.
Notification Policy
Envia uma notificação por e-mail com base no status final da execução do workflow. Opções disponíveis: Do Not Send (Padrão), Send for Successful Workflows, Send for Failed Workflows e Always Send.
Workflow Priority
Prioridade do nó no workflow. Valor padrão: MEDIUM. Valores válidos:
HIGHEST
HIGH
MEDIUM
LOW
LOWEST
Resource Groups for Scheduling
Grupo de recursos usado para agendamento e execução da tarefa. Selecione um grupo de recursos de agendamento existente na lista suspensa.
Cluster/Template
Cluster ou modelo de cluster para execução. As opções disponíveis são filtradas com base no grupo de recursos de agendamento selecionado.
NotaSe você selecionar um Cluster/Template para o Cluster Template, um novo cluster será criado com base no modelo quando o workflow for executado e liberado após a conclusão do workflow. Caso tenha configurado um Timeout Alert para a definição do workflow, o cluster também será liberado automaticamente se a regra de timeout for acionada. Se nenhum Timeout Alert estiver configurado, o sistema libera o cluster automaticamente após 24 horas de execução.
Backfill
Define se dados retroativos devem ser gerados com base nas configurações de backfill quando o workflow é executado dentro do intervalo de tempo especificado.
NotaRegra de backfill: se o workflow possuir um agendamento ativo, o backfill segue a frequência desse agendamento. Caso contrário, o sistema gera execuções uma vez por dia às 00:00 por padrão.
Limitação: uma única operação de backfill de dados pode gerar no máximo 100 instâncias de workflow.
Selecione Yes e configure os seguintes parâmetros:
Dependency Mode: suporta Open e Off (padrão). Esta configuração define se o backfill de dados para uma instância do workflow atual aciona o backfill para seus nós dependentes downstream.
Dados retroativos são gerados para workflows dependentes do workflow atual somente se o workflow atual estiver no estado Online e possuir configurações de agendamento definidas.
Execution Method
Serial Execution: executa as rodadas de backfill sequencialmente, criando uma instância de workflow para cada intervalo no período especificado.
Parallel Execution (Padrão): dentro do intervalo de tempo especificado, as execuções de backfill para múltiplos dias ocorrem simultaneamente, gerando várias instâncias de workflow ao mesmo tempo.
Para este modo, configure também o parâmetro Customize Parallelism, que especifica o número máximo de instâncias executadas em paralelo. O paralelismo máximo para cada operação de backfill é 7.
NotaSe a definição do workflow utilizar a política de execução Parallel, apenas a Parallel Execution poderá ser usada para backfill de dados. Da mesma forma, um workflow com política Serial Waiting exige Serial Execution para o backfill.
Scheduling Period: intervalo de datas para a execução do workflow.
Global Parameters
Parâmetro de inicialização e seu respectivo valor. O valor serve para definir uma variável global ou sobrescrever o valor existente dessa variável ao iniciar uma nova instância do workflow.
Dry Run
Define se deve ser realizada uma execução simulada (dry run) do workflow. Nesse caso, um log de sucesso é registrado.
No painel de navegação à esquerda, escolha Instance O&M>Workflow Instance para visualizar o status de execução da instância.
Importar um workflow
Na página , clique em Import.
Clique em Upload, selecione o arquivo de definição de workflow exportado (.json) no seu computador local e clique em OK.
Configurar um workflow agendado
Na página Workflow Definition, localize a definição de workflow desejada e clique em Configure Scheduling Time na coluna Actions.
-
Na caixa de diálogo exibida, defina os parâmetros e clique em OK.
Time Period: o agendamento permanece ativo apenas durante este intervalo de tempo. Nenhuma instância é gerada fora deste período.
Configure Scheduling Time: horário e frequência de execução do workflow.
Na coluna Schedule Status, ative a chave para habilitar o agendamento.
Tópicos relacionados
Para visualizar informações sobre instâncias de workflow, consulte Gerenciar instâncias de workflow.
Para mais informações sobre parâmetros suportados, consulte Referência de parâmetros.