Apache Oozie õpetus: mis on, töövoog, näide – Hadoop

Mis on OOZIE?

Apache Oozie on Hadoopi töövoo planeerija. See on süsteem, mis juhib sõltuvate tööde töövoogu. Siin on kasutajatel lubatud luua Suunatud atsüklilised graafikud töövoogudest, mida saab Hadoopis paralleelselt ja järjestikku käivitada.

See koosneb kahest osast:

  • Töövoomootor: töövoomootori kohustus on salvestada ja käitada töövooge, mis koosnevad Hadoopi töödest, nt MapReduce, Pig, Hive.
  • Koordinaatori mootor: see käivitab töövoo töid etteantud ajakavade ja andmete saadavuse alusel.

Oozie on skaleeritav ja suudab hallata tuhandete töövoogude (igaüks koosneb kümnetest töödest) õigeaegset täitmist Hadoopi klastris.

OOZIE

Oozie on samuti väga paindlik. Töid saab hõlpsasti alustada, peatada, peatada ja uuesti käivitada. Oozie muudab ebaõnnestunud töövoogude taaskäivitamise väga lihtsaks. On lihtne mõista, kui raske võib olla seisaku või ebaõnnestumise tõttu vahelejäänud või ebaõnnestunud töökohtadele järele jõudmine. Konkreetse ebaõnnestunud sõlme on isegi võimalik vahele jätta.

Kuidas OOZIE töötab?

Oozie töötab klastris teenusena ja kliendid esitavad töövoo definitsioonid koheseks või hilisemaks töötlemiseks.

Oozie töövoog koosneb tegevussõlmed ja juhtvoolu sõlmed.

An tegevussõlm tähistab töövooülesannet, nt failide teisaldamist HDFS-i, MapReduce'i, Pig'i või programmi käivitamist Mesilaspere töid, andmete importimist Sqoopi abil või sisse kirjutatud programmi shelliskripti käitamist Java.

A juhtvoo sõlm juhib töövoo täitmist toimingute vahel, lubades selliseid konstruktsioone nagu tingimuslik loogika, mille puhul võidakse järgida erinevaid harusid sõltuvalt varasema toimingusõlme tulemusest.

Käivitage sõlm, Lõppsõlmja Vea sõlm kuuluvad sellesse sõlmede kategooriasse.

Start Node, määrab töövoo töö alguse.

Lõppsõlm, annab märku töö lõppemisest.

Vea sõlm tähistab vea ilmnemist ja vastavat veateadet, mis tuleb printida.

Töövoo täitmise lõpus kasutab Oozie HTTP tagasihelistamist kliendi töövoo oleku värskendamiseks. Toimingusõlme sisenemine või sealt väljumine võib samuti käivitada tagasihelistamise.

Töövoo diagrammi näide

Töövoo diagrammi näide

Oozie töövoorakenduse pakkimine ja juurutamine

Töövoorakendus koosneb töövoo määratlusest ja kõigist sellega seotud ressurssidest, nagu MapReduce Jar failid, Pig skriptid jne. Rakendused peavad järgima lihtsat kataloogistruktuuri ja neid juurutatakse HDFS et Oozie saaks neile juurde pääseda.

Kataloogistruktuuri näide on näidatud allpool -

<name of workflow>/</name>
??? lib/
? ??? hadoop-examples.jar
??? workflow.xml

Töövoo definitsioonifaili workflow.xml (töövoo definitsioonifail) tuleb hoida ülemise taseme kataloogis (töövoo nimega emakataloog). Lib kataloog sisaldab MapReduce klasse sisaldavaid Jar-faile. Sellele paigutusele vastava töövoorakenduse saab ehitada mis tahes ehitustööriistaga, nt Ant või Maven.

Selline ehitus tuleb kopeerida HDFS-i, kasutades käsku, näiteks -

% hadoop fs -put hadoop-examples/target/<name of workflow dir> name of workflow

Oozie töövoo töö käitamise sammud

Selles jaotises näeme, kuidas töövootööd käitada. Selle käivitamiseks kasutame Oozie käsurea tööriista (klientprogramm, mis suhtleb Oozie serveriga).

1. Eksportige keskkonnamuutuja OOZIE_URL, mis ütleb oozie käsule, millist Oozie serverit kasutada (siin kasutame lokaalselt töötavat):

% export OOZIE_URL="http://localhost:11000/oozie"

2. Käivitage töövoo töö, kasutades

% oozie job -config ch05/src/main/resources/max-temp-workflow.properties -run

Valik -config viitab kohalikule Java atribuutide fail, mis sisaldab töövoo XML-faili parameetrite määratlusi, samuti oozie.wf.application.path, mis ütleb Oozie'le töövoorakenduse asukoha HDFS-is.

Atribuutide faili sisu näide:

nameNode=hdfs://localhost:8020
jobTracker=localhost:8021
oozie.wf.application.path=${nameNode}/user/${user.name}/<name of workflow>

3. Hankige töövoo töö olek-

Töövoo töö olekut saab näha kasutades alamkäsku 'job' koos valikuga '-info' ja määrates töö ID pärast '-info'.

e.g., % oozie job -info <job id>

Väljund näitab olekut, mis on TÖÖTAB, KILLED või SUCCEEDED.

4. Töövoo eduka täitmise tulemusi saab näha Hadoopi käsu abil, näiteks

% hadoop fs -cat <location of result>

Miks kasutada Oozie't?

Oozie kasutamise peamine eesmärk on hallata Hadoopi süsteemis töödeldavaid erinevat tüüpi töid.

Töödevahelised sõltuvused määrab kasutaja suunatud atsükliliste graafikute kujul. Oozie kasutab seda teavet ja hoolitseb nende täitmise eest töövoos määratud õiges järjekorras. Nii säästetakse kasutaja aega kogu töövoo haldamiseks. Lisaks on Oozie'l säte konkreetse töö teostamise sageduse täpsustamiseks.

Oozie omadused

  • Oozie'l on kliendi API ja käsurea liides, mida saab kasutada töö käivitamiseks, juhtimiseks ja jälgimiseks Java taotlus.
  • Selle veebiteenuse API-de abil saate töid juhtida kõikjal.
  • Oozie'l on ette nähtud tööde teostamine, mis on kavandatud perioodiliselt käima.
  • Oozie'l on võimalus saata tööde lõpetamisel meiliteateid.