Apache Oozie apmācība: kas ir, darbplūsma, piemērs - Hadoop

Kas ir OOZIE?

Apache Oozie ir Hadoop darbplūsmas plānotājs. Tā ir sistēma, kas vada atkarīgo darbu darbplūsmu. Šeit lietotājiem ir atļauts izveidot Režisētie acikliskie grafiki darbplūsmas, kuras var palaist paralēli un secīgi Hadoop.

Šajā apmācībā jūs uzzināsit,

Tas sastāv no divām daļām:

  • Darbplūsmas dzinējs: Darbplūsmas dzinēja pienākums ir saglabāt un palaist darbplūsmas, kas sastāv no Hadoop darbiem, piemēram, MapReduce, Pig, Hive.
  • Koordinatora dzinējs : Tā izpilda darbplūsmas darbus, pamatojoties uz iepriekš noteiktiem grafikiem un datu pieejamību.

Oozie ir mērogojams un var pārvaldīt tūkstošiem darbplūsmu (katra no tām sastāv no desmitiem darbavietu) savlaicīgu izpildi Hadoop klasterī.

Oozie ir arī ļoti elastīgs. Var viegli sākt, apturēt, apturēt un atkārtot darbus. Oozie ļauj ļoti viegli atkārtot neveiksmīgās darbplūsmas. Var viegli saprast, cik grūti var panākt nokavēto vai neveiksmīgo darbu dīkstāves vai neveiksmes dēļ. Ir pat iespējams izlaist konkrētu neveiksmīgu mezglu.

Kā OOZIE darbojas?

Oozie darbojas kā pakalpojums klasterī, un klienti iesniedz darbplūsmas definīcijas tūlītējai vai vēlākai apstrādei.

Oozie darbplūsma sastāv no darbības mezgli un vadības plūsmas mezgli .

An darbības mezgls ir darbplūsmas uzdevums, piemēram, failu pārvietošana HDFS, MapReduce, Pig vai Hive darbu izpilde, datu importēšana, izmantojot Sqoop, vai Java valodā rakstītas programmas čaulas skripta palaišana.

TO vadības plūsmas mezgls kontrolē darbplūsmas izpildi starp darbībām, atļaujot tādas konstrukcijas kā nosacīta loģika, kur atkarībā no iepriekšējā darbības mezgla rezultāta var sekot dažādām atzarām.

Palaidiet mezglu , Beigu mezgls , un Kļūdas mezgls ietilpst šajā mezglu kategorijā.

LaunchNode, nozīmē darbplūsmas darba sākumu.

Beigu mezgls, signalizē par darba beigām.

Kļūdas mezgls apzīmē kļūdas rašanos un atbilstošo kļūdas ziņojumu, kas jāizdrukā.

Darbplūsmas izpildes beigās Oozie izmanto HTTP atzvanīšanu, lai atjauninātu klientu ar darbplūsmas statusu. Ieiešana darbības mezglā vai iziešana no tā var izraisīt arī atzvanīšanu.

Darbplūsmas diagrammas piemērs

Oozie darbplūsmas lietojumprogrammas iesaiņošana un izvietošana

Darbplūsmas lietojumprogramma sastāv no darbplūsmas definīcijas un visiem saistītajiem resursiem, piemēram, MapReduce Jar failiem, Pig skriptiem uc. Lietojumprogrammām ir jāievēro vienkārša direktoriju struktūra un tās jāizvieto HDFS, lai Oozie tām varētu piekļūt.

Tālāk ir parādīts direktoriju struktūras piemērs- | _+_ |

Ir nepieciešams saglabāt workflow.xml (darbplūsmas definīcijas failu) augšējā līmeņa direktorijā (vecāku direktorijā ar darbplūsmas nosaukumu). Lib direktorijā ir Jar faili, kas satur MapReduce klases. Šim izkārtojumam atbilstošu darbplūsmas lietojumprogrammu var izveidot, izmantojot jebkuru būvēšanas rīku, piemēram, Ant vai Maven.

Šāda būve ir jākopē HDFS, izmantojot komandu, piemēram - | _+_ |

Oozie darbplūsmas darba izpildes soļi

Šajā sadaļā mēs redzēsim, kā palaist darbplūsmas darbu. Lai to palaistu, mēs izmantosim komandrindas rīku Oozie (klienta programma, kas sazinās ar Oozie serveri).

1. Eksportējiet vides mainīgo OOZIE_URL, kas norāda komandai oozie, kuru Oozie serveri izmantot (šeit mēs izmantojam vienu, kas darbojas lokāli):

/ ??? lib/ ? ??? hadoop-examples.jar ??? workflow.xml

2. Palaidiet darbplūsmas darbu, izmantojot

% hadoop fs -put hadoop-examples/target/ name of workflow

Opcija -config attiecas uz vietējo Java rekvizītu failu, kas satur darbplūsmas XML faila parametru definīcijas, kā arī oozie.wf.application.path, kas norāda Oozie darbplūsmas lietojumprogrammas atrašanās vietu HDFS.

Rekvizītu faila satura piemērs: | _+_ |

3. Iegūstiet darbplūsmas darba statusu-

Darbplūsmas darba statusu var redzēt, izmantojot apakškomandu “darbs” ar opciju “-info” un norādot darba ID pēc “-info”. | _+_ |

Izvade parāda statusu, kas ir viens no RUNNING, KILLED vai SUCCEEDED.

4. Veiksmīgas darbplūsmas izpildes rezultātus var redzēt, izmantojot Hadoop komandu, piemēram,

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

Kāpēc izmantot Oozie?

Oozie izmantošanas galvenais mērķis ir pārvaldīt dažāda veida darbus, kas tiek apstrādāti Hadoop sistēmā.

Atkarības starp darbiem lietotājs norāda norādītu aciklisku diagrammu veidā. Oozie patērē šo informāciju un rūpējas par to izpildi pareizā secībā, kā norādīts darbplūsmā. Tādā veidā tiek ietaupīts lietotāja laiks, lai pārvaldītu pilnu darbplūsmu. Turklāt Oozie ir noteikums, kas nosaka konkrēta darba izpildes biežumu.

Oozie iezīmes

  • Oozie ir klienta API un komandrindas interfeiss, ko var izmantot, lai palaistu, kontrolētu un pārraudzītu darbu no Java lietojumprogrammas.
  • Izmantojot tīmekļa pakalpojumu API, jūs varat kontrolēt darbus no jebkuras vietas.
  • Oozie ir nodrošinājis iespēju izpildīt darbus, kas ir plānoti periodiski.
  • Oozie ir noteikums nosūtīt e -pasta paziņojumus pēc darbu pabeigšanas.