Neste tutorial, mostramos como usar o Serviço gerenciado para Apache Airflow para criar um DAG (gráfico acíclico dirigido) do Apache Airflow que executa um job de contagem de palavras do Apache Hadoop em um cluster do Serviço gerenciado para Apache Spark.
Objetivos
- Acesse seu ambiente do Airflow gerenciado e use a interface do Airflow.
- Crie e visualize variáveis de ambiente do Airflow.
- Criar e executar um DAG que inclua as seguintes tarefas:
- Cria um cluster do Serviço Gerenciado para Apache Spark.
- Executa um job de contagem de palavras do Apache Hadoop (em inglês) no cluster.
- Gera os resultados da contagem de palavras em um bucket do Cloud Storage.
- Exclui o cluster.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Cloud de Confiance by S3NS:
- Managed Airflow
- Managed Service for Apache Spark
- Cloud Storage
Antes de começar
Verifique se as seguintes APIs estão ativadas no seu projeto:
Console
Ative o Serviço gerenciado para Apache Spark e as APIs Cloud Storage, se ainda não estiverem ativados.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud
Ative o Serviço Gerenciado para Apache Spark e as APIs Cloud Storage, se ainda não estiverem ativados:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable dataproc.googleapis.com
storage-component.googleapis.com No seu projeto, crie um bucket do Cloud Storage de qualquer classe de armazenamento e região para armazenar os resultados do job de contagem de palavras do Hadoop.
Anote o caminho do bucket que você criou, por exemplo,
gs://example-bucket. Você vai definir uma variável do Airflow para esse caminho e usar a variável no exemplo de DAG mais adiante neste tutorial.Crie um ambiente do Airflow Gerenciado com parâmetros padrão. Aguarde até que a criação do ambiente seja concluída. Quando terminar, a marca de seleção verde vai aparecer à esquerda do nome do ambiente.
Anote a região em que você criou o ambiente, por exemplo,
us-central. Você vai definir uma variável do Airflow para essa região e usá-la no DAG de exemplo para executar um cluster do Serviço Gerenciado para Apache Spark na mesma região.
Definir variáveis do Airflow
Defina as variáveis do Airflow para usar mais tarde no exemplo de DAG. Por exemplo, é possível definir variáveis do Airflow na interface do Airflow.
| Variável do Airflow | Valor |
|---|---|
gcp_project
|
O ID do projeto que você está usando para este tutorial, como example-project. |
gcs_bucket
|
O URI do bucket do Cloud Storage criado para este tutorial,
como gs://example-bucket |
gce_region
|
A região em que você criou o ambiente, como us-central1.
É a região em que o cluster do Serviço Gerenciado para Apache Spark será criado. |
Ver o exemplo de fluxo de trabalho
Um DAG do Airflow é uma coleção de tarefas organizadas que você quer programar
e executar. Os DAGs são definidos em arquivos Python padrão. O código mostrado em
hadoop_tutorial.py é o código do fluxo de trabalho.
Operadores
Para orquestrar as três tarefas no fluxo de trabalho de exemplo, o DAG importa os três operadores do Airflow a seguir:
DataprocClusterCreateOperator: cria um cluster do Serviço Gerenciado para Apache Spark.DataProcHadoopOperator: envia um job de contagem de palavras do Hadoop e grava os resultados em um bucket do Cloud Storage.DataprocClusterDeleteOperator: exclui o cluster para evitar cobranças contínuas do Compute Engine.
Dependências
Você organiza as tarefas que quer executar de uma forma que reflita os relacionamentos e as dependências delas. As tarefas neste DAG são executadas em sequência.
Programação
O nome do DAG é composer_hadoop_tutorial, e ele é executado uma vez por dia. Como o start_date transmitido para default_dag_args está definido como yesterday, o Airflow gerenciado programa o fluxo de trabalho para iniciar imediatamente após o DAG ser enviado para o bucket do ambiente.
Fazer upload do DAG para o bucket do ambiente
O Airflow Gerenciado armazena DAGs na pasta /dags no bucket do ambiente.
Siga estas etapas para fazer o upload do DAG:
Na máquina local, salve
hadoop_tutorial.py.No console Cloud de Confiance , acesse a página Ambientes.
Na lista de ambientes, na coluna Pasta de DAGs do seu ambiente, clique no link DAGs.
Clique em Enviar arquivos.
Selecione
hadoop_tutorial.pyna sua máquina local e clique em Abrir.
O Airflow gerenciado adiciona e programa o DAG automaticamente. As alterações no DAG levam de 3 a 5 minutos.
Analisar execuções de DAG
Ver o status da tarefa
Quando você faz upload do arquivo DAG para a pasta dags/ no Cloud Storage, o Airflow Gerenciado analisa o arquivo. Quando concluído, o nome do fluxo de trabalho aparece na lista de DAGs e entra na fila para ser executado imediatamente.
Para ver o status da tarefa, acesse a interface da Web do Airflow e clique em DAGs na barra de ferramentas.
Para abrir a página de detalhes do DAG, clique em
composer_hadoop_tutorial. Nela, você encontra uma representação gráfica das tarefas e das dependências do fluxo de trabalho.
Para ver o status de cada tarefa, clique em Visualização de gráfico e, em seguida, passe o mouse sobre a imagem de cada tarefa.
Enfileirar o fluxo de trabalho novamente
Para executar o fluxo de trabalho novamente a partir da Visualização de gráfico:
- Na visualização de gráfico da IU do Airflow, clique no gráfico
create_dataproc_cluster. - Para redefinir as três tarefas, clique em Limpar e em OK para confirmar.
- Clique em
create_dataproc_clusternovamente na visualização de gráfico. - Para enfileirar o fluxo de trabalho novamente, clique em Executar.
Conferir resultados da tarefa
Você também pode verificar o status e os resultados do fluxo de trabalho composer_hadoop_tutorial
acessando as seguintes páginas do console Cloud de Confiance :
Clusters do Serviço Gerenciado para Apache Spark: para monitorar a criação e exclusão de clusters. O cluster criado pelo fluxo de trabalho é efêmero: ele só existe durante a execução do fluxo e é excluído como parte da última tarefa.
Jobs do Serviço Gerenciado para Apache Spark: para ver ou monitorar o job de contagem de palavras do Apache Hadoop. Clique no ID do job para ver a saída do registro dele.
Navegador do Cloud Storage: para ver os resultados da contagem de palavras na pasta
wordcountdo bucket do Cloud Storage criado para este tutorial.
Limpeza
Exclua os recursos usados neste tutorial:
Exclua o ambiente do Airflow Gerenciado, incluindo a exclusão manual do bucket do ambiente.
Exclua o bucket do Cloud Storage que armazena os resultados do job de contagem de palavras do Hadoop.