caso de agendamento oozie

No blog anterior, apresentei o conteúdo relacionado à instalação do oozie. Este artigo apresentará um caso de uso simples do oozie.

Antes de falar sobre os casos de uso, devemos primeiro enfatizar alguns pontos
1. O fluxo de trabalho do Oozie deve ser um gráfico acíclico direcionado. Na verdade, o Oozie é equivalente a um cliente Hadoop. Quando o usuário precisa executar várias tarefas de MR associadas neste momento, você só precisa escrever a sequência de execução do MR em workflow.xml e, em seguida, usar o Oozie para enviar esta tarefa, e o Oozie hospedará o fluxo da tarefa

2. Antes de usar o Oozie, você deve primeiro iniciar hdfs, yarn e jobhistory (a versão CDH do hadoop é recomendada para problemas de compatibilidade) e então iniciar o oozie executando bin / oozied.sh start

3. O Oozie é essencialmente uma ferramenta de coordenação de trabalho (o princípio subjacente é fazer isso convertendo a linguagem xml em um programa mapreduce , mas é feito apenas no lado do mapa centralizado para evitar o processo de embaralhamento).

Caso: Programando shell script Caso
1) Descompacte o modelo de caso oficial
[root @ hadoop102 oozie-4.0.0-cdh5.3.6] # tar -zxvf oozie-examples.tar.gz

2) Crie o diretório oozie-apps
[root @ hadoop102 oozie-4.0.0-cdh5.3.6] # mkdir oozie-apps

3) Copie o modelo de tarefa para oozie-apps
[root @ hadoop102 oozie-4.0.0-cdh5.3.6] # cp -r examples / apps / shell / oozie-apps

4) Modifique job.properties em oozie-apps

Insira a descrição da imagem aqui

Substitua o conteúdo acima pelo seguinte, observe que jobTracker aponta para a máquina onde o fio está localizado

#HDFS地址
nameNode=hdfs://hadoop102:8020
#ResourceManager地址
jobTracker=hadoop103:8032
#队列名称
queueName=default
#作业的根目录
examplesRoot=oozie-apps
#指定oozie的shell脚本在HDFS中的路径
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/shell
#执行的Shell脚本
EXEC=p1.sh

5) Crie um novo arquivo p1.sh no diretório /opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shell, em seguida, adicione o seguinte conteúdo, salve e saia

#!/bin/bash
date > /opt/module/p1.log

6) Verifique o arquivo workflow.xml, você pode ver que o padrão é imprimir uma frase, mudamos isso para executar nosso script.

Insira a descrição da imagem aqui

Exclua o conteúdo da caixa vermelha acima e substitua-o pelo conteúdo abaixo

 <exec>${EXEC}</exec>
        <!-- <argument>my_output=Hello Oozie</argument> -->
        <file>/user/root/oozie-apps/shell/${EXEC}#${EXEC}</file>

        <capture-output/>

Em seguida, altere o valor de para na primeira caixa para finalizar, exclua todo o conteúdo da segunda caixa e salve e saia (nossa tarefa é principalmente sair se o script for executado agora, e se falhar, vá para o nó com falha )

Insira a descrição da imagem aqui

7) Fazer upload da configuração da tarefa

[root @ hadoop102 oozie-4.0.0-cdh5.3.6] # /opt/module/cdh/hadoop-2.5.0-cdh5.3.6/bin/hadoop fs -put oozie-apps / / user / root

Vá para o lado da web e dê uma olhada, você pode ver que o upload foi bem sucedido

Insira a descrição da imagem aqui

8) Execute a tarefa, um JobId aparecerá após a tarefa ser executada

[root @ hadoop102 oozie-4.0.0-cdh5.3.6] # bin / oozie job -oozie http: // hadoop102: 11000 / oozie -config oozie-apps / shell / job.properties -run

Insira a descrição da imagem aqui

Clique no terminal da web em nosso oozie, você pode ver que ele foi exibido com sucesso, e a instalação também é nossa expectativa para ir para iniciar -> shell -> final

Em relação à exibição incompleta da página web, não é porque há um problema com a execução da tarefa, é provavelmente um problema do navegador.É recomendável usar o Google Chrome para acessar.

Insira a descrição da imagem aqui

Insira a descrição da imagem aqui

Acessamos / opt / module em hadoop102,103,104 para verificar e descobrimos que o p1.log gerado estava em hadoop104, ou seja, yarn deu esta tarefa a hadoop104 para execução

Insira a descrição da imagem aqui

Vamos catar o p1.log em hadoop104, que é o resultado do script acima.

Insira a descrição da imagem aqui

Esta etapa pode realmente ser vista no History Server e a tarefa é entregue ao hadoop104 para execução.

Insira a descrição da imagem aqui

Dicas: você também pode observar a execução da tarefa no DAG do trabalho (gráfico acíclico direcionado) da tarefa. Isso está de acordo com o fluxo de trabalho oozie (fluxo de trabalho) mencionado anteriormente. Se a tarefa for executada com sucesso, o processo mudará verde. Ele ficará vermelho se falhar.

Insira a descrição da imagem aqui

Comandos comumente usados ​​sobre oozie: #Submit
task. -config é para especificar a localização do arquivo job.properties da tarefa oozie e submit é para enviar a tarefa. Após cada tarefa ser enviada, a tarefa será colocada no servidor e um jobId será produzido, mas a tarefa não será executado
bin / oozie job -oozie http: / / hadoop102: 11000 / oozie / -config /opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shell/job.properties -submit

#Execute a tarefa, 0000000-200801125303709-oozie-root-W Este é o jobId, o id de cada tarefa é único, este é o trabalho
bin / oozie -oozie http: // hadoop102: 11000 / oozie gerado após a tarefa ser enviado / -start 0000000-200801125303709-oozie-root-W


#Execute a tarefa, execute = submit + execute bin / oozie job -oozie http: // hadoop102: 11000 / oozie / -config /opt/module/oozie-4.0.0-cdh5.3.6/oozie-apps/shell/job .properties -run


#Mate uma tarefa bin / oozie job -oozie http: // hadoop102: 11000 / oozie -kill 0000000-200801125303709-oozie-root-W


#Ver informações da tarefa, você pode ver o status de cada item de execução bin / oozie job -oozie http: // hadoop102: 11000 / oozie -info 0000000-200801125303709-oozie-root-W


#Ver o registro de tarefas, você pode visualizar o conteúdo de saída e o conteúdo de registro de cada tarefa bin / oozie job -oozie http: // hadoop102: 11000 / oozie -log 0000000-200801125303709-oozie-root-W


#Verifique se o arquivo workflow.xml tem problemas gramaticais bin / oozie validate -oozie http: // hadoop102: 11000 / oozie workflow.xml

Materiais de referência:
https://www.cnblogs.com/shenjie2017/articles/9774681.html

https://blog.csdn.net/TNTZS666/article/details/81915820

Acho que você gosta

Origin blog.csdn.net/weixin_44080445/article/details/107730024
Recomendado
Clasificación