Vodič za Oozie: Naučite kako rasporediti svoje Hadoop poslove



Vodič za Apache Oozie: Oozie je sustav za planiranje tijeka posla za upravljanje Hadoop poslovima. To je skalabilan, pouzdan i proširiv sustav.

Prije pokretanja ovog vodiča za Apache Oozie, shvatimo gdje se koristi sustav planera. U scenarijima u stvarnom vremenu jedan posao ovisi o drugim poslovima, poput izlaza zadatka MapReduce može se proslijediti poslu Hive za daljnju obradu. Sljedeći scenarij može biti planiranje skupa zadataka na temelju vremena poput dnevnog, tjednog, mjesečnog ili na temelju dostupnosti podataka. Apache Oozie pruža vam moć da lako riješite ove vrste scenarija. Zbog toga je Apache Oozie važan dio .

U ovom blogu tutorijala za Apache Oozie obrađivat ćemo:





  • Apache Oozie Uvod
  • Oozie tijek rada
  • Oozie koordinator
  • Oozie snop
  • Posao tijeka broja riječi
  • Zadatak koordinatora brojanja riječi temeljenog na vremenu

Započet ćemo s ovim vodičem za Oozie predstavljanjem Apachea Oozie. Zatim ćemo krenuti dalje, razumjet ćemo vrste poslova koje se mogu stvoriti i izvršiti pomoću Apache Oozie.

Vodič za Apache Oozie: Uvod u Apache Oozie

Apache Oozie - Vodič za Oozie - EdurekaApache Oozie je sustav planera za upravljanje i izvršavanje Hadoop poslova u distribuiranom okruženju. Kombiniranjem različitih vrsta zadataka možemo stvoriti željeni plinovod. To može biti vaš zadatak Hive, Pig, Sqoop ili MapReduce. Korištenjem Apache Oozie također možete planirati svoje poslove. Unutar niza zadatka, dva ili više poslova također se mogu programirati da se izvode paralelno. To je skalabilan, pouzdan i proširiv sustav.



Oozie je web aplikacija Java otvorenog koda koja je odgovorna za pokretanje radnji tijeka rada. Zauzvrat koristi Hadoop izvršni mehanizam za izvršavanje zadataka.

Apache Oozie otkriva izvršavanje zadataka putem povratnog poziva i ankete. Kada Oozie pokrene zadatak, on pruža jedinstveni HTTP URL za povratni poziv zadatku i obavještava ga kad završi zadatak. Ako zadatak ne pozove URL povratnog poziva, Oozie može izvršiti anketu zadatka.

U Apache Oozie postoje tri vrste poslova:



  • Oozie poslovi tijeka posla & minus To su usmjereni aciklički grafovi (DAG-ovi) koji određuju redoslijed radnji koje treba izvršiti.
  • Oozie koordinator poslovi & minus Oni se sastoje od poslova tijeka posla pokrenutih vremenom i dostupnošću podataka.
  • Oozie zavežljaji & minus To se može nazvati paketom više koordinatora i radnih zadataka.

Sada, shvatimo sve ove poslove jedan po jedan.

Vodič za Apache Oozie: Tok rada Oozie

Tijek rada slijed je radnji raspoređenih u izravni aciklički graf (DAG). Radnje ovise jedna o drugoj, jer se sljedeća akcija može izvršiti tek nakon izlaza trenutne akcije. Akcija tijeka rada može biti akcija Svinje, akcija košnice, akcija MapReduce, akcija ljuske, akcija Java itd. Mogu postojati stabla odlučivanja koja će odlučiti kako i pod kojim uvjetima posao treba izvoditi.

Možemo stvoriti različite vrste radnji na temelju posla, a svaka vrsta radnje može imati svoju vrstu oznaka.Tok rada i skripte ili staklenke trebaju se smjestiti u HDFS putanju prije izvođenja tijeka rada.

Naredba: oozie posao –oozie http: // localhost: 11000 / oozie -config job.properties -run

Za provjeru statusa posla možete otići na web-konzolu Oozie, tj. http: // ime_hosta: 11000 . Klikom na posao vidjet ćete status posla.

U scenarijima, gdje želimo paralelno pokretati više poslova, možemo koristiti Vilica . Kad god koristimo vilicu, moramo koristiti Join kao krajnji čvor za račvanje. Za svaku vilicu treba postojati spoj. Join pretpostavlja da su svi čvorovi koji se paralelno izvršavaju podređeni jednoj vilici. Na primjer, paralelno možemo istovremeno stvoriti dvije tablice.

Ako želimo pokrenuti akciju na temelju rezultata odluke, možemo dodati oznake odluke. Na primjer, ako već imamo tablicu košnica, nećemo je trebati ponovno stvarati. U toj situaciji možemo dodati oznaku odluke da ne pokrećemo korake stvaranja tablice ako tablica već postoji. Čvorovi odluke imaju oznaku preklopnika sličnu slučaju prekidača.

Vrijednost tragača posla, čvora imena, skripte i parameta može se izravno proslijediti. No, ovim postaje teško upravljati. Tu je korisna datoteka za konfiguriranje (tj. Datoteka .property).

Vodič za Apache Oozie: Oozie koordinator

Pomoću Koordinatora možete planirati složene tijekove rada, kao i tijekove redovnog planiranja. Oozie koordinatori pokreću poslove tijeka rada na temelju vremena, podataka ili predikata. Tokovi rada unutar koordinatora poslova započinju kada je zadani uvjet zadovoljen.

Definicije potrebne za poslove koordinatora su:

  • početak & minus Datum i vrijeme početka posla.
  • kraj & minus Datum i kraj završetka posla.
  • Vremenska zona & minus Vremenska zona aplikacije koordinatora.
  • frekvencija & minus Učestalost izvršavanja poslova u minutama.

Za kontrolne informacije dostupna su još neka svojstva:

  • pauza & minus Maksimalno vrijeme, u minutama, tijekom kojeg će radnja pričekati da zadovolji dodatne uvjete, prije nego što se odbaci. 0 označava da ako svi ulazni događaji nisu zadovoljeni u vrijeme materijalizacije radnje, akcija bi trebala odmah isteći. -1 označava da nema vremenskog ograničenja, akcija će čekati zauvijek. Zadana vrijednost je -1.
  • konkurencija & minus Maksimalni broj radnji za posao koji se može paralelno izvoditi. Zadana vrijednost je 1.
  • izvršenje - Određuje nalog za izvršenje ako je više instanci posla koordinatora zadovoljilo svoje kriterije izvršenja. To može biti:
    • FIFO (zadano)
    • LIFO
    • POSLJEDNJE_ SAMO

Naredba: oozie posao –oozie http: // localhost: 11000 / oozie -config -run

Ako svojstvo konfiguracije korišteno u definiciji nije dodano s konfiguracijom posla tijekom predaje posla koordinatora, predaja posla neće uspjeti.

Vodič za Apache Oozie: Oozie Bundle

Oozie sustav snopaomogućuje vam definiranje i izvršavanje skupa aplikacija koordinatora, koje se često nazivaju podatkovni cjevovod. U Oozie paketu nema izričite ovisnosti među aplikacijama koordinatora. Međutim, mogli biste koristiti ovisnost podataka aplikacija koordinatora za stvaranje implicitnog cjevovoda za podatkovne aplikacije.Možete započeti / zaustaviti / obustaviti / nastaviti / ponovo pokrenuti paket. Omogućuje bolju i jednostavniju operativnu kontrolu.

Kick-off vrijeme & minus Vrijeme kada bi paket trebao pokrenuti i predati prijave koordinatora.

Napredujući u ovom vodiču za Apache Oozie, razumjet ćemo kako stvoriti posao posla.

Vodič za Apache Oozie: Posao tijeka broja riječi

U ovom ćemo primjeru izvršiti posao prebrojavanja riječi koristeći Apache Oozie. Ovdje nećemo raspravljati o tome kako napisati MapReduce program za brojanje riječi. Dakle, prije nego što slijedite ovaj vodič za Apache Oozie, morate ga preuzeti tegla za brojanje riječi datoteka. Sada stvorite direktorij WordCountTest u koji ćemo smjestiti sve datoteke. Stvorite lib direktorij u koji ćemo smjestiti jar za brojanje riječi kao što je prikazano na slikama u nastavku.

Sada, idemo naprijed i stvarajte posao.svojstva & tijek rada.xml datoteke, gdje ćemo odrediti posao i parametre povezane s njim.

Java razlika između proteže se i implementira

posao.svojstva

Prvo, stvaramo posao.svojstva datoteku, gdje definiramo put do NameNode & ResourceManager. Putanja NameNode potrebna je za rješavanje putanje direktorija tijeka posla, a putanja jobTracker pomoći će u slanju posla na YARN. Moramo osigurati put tijek rada.xml datoteku koja se treba pohraniti u HDFS.

tijek rada.xml

Dalje, moramo stvoriti tijek rada.xml datoteku, gdje ćemo definirati sve svoje radnje i izvršiti ih. Prvo, moramo odrediti naziv aplikacije tijeka rada tj. WorkflowRunnerTest . Zatim preciziramo startni čvor . Početni čvor ( u the početi da označiti ) je ulazna točka za posao tijeka rada. Ukazuje na prvi čvor tijeka rada odakle bi posao trebao započeti. Kao što možete vidjeti na donjoj slici, sljedeći čvor je raskrižje0 odakle će posao započeti.

Dalje, određujemo zadatak koji treba izvršiti, u čvoru akcije. Ovdje izvršavamo zadatak MapReduce WordCount. Moramo navesti konfiguracije potrebne za izvršavanje ovog zadatka MapReduce. Definiramo tragač posla i adresu NameNode.

Sljedeći je pripremljeni element, koji se koristi isključivo za čišćenje direktorija, prije izvođenja akcije. Ovdje izvodimo operaciju brisanja u HDFS-u za brisanje datoteke out1 mapa ako je već stvorena. Oznaka za pripremu koristi se za stvaranje ili brisanje mape prije izvršavanja posla. Zatim specificiramo svojstva MapReduce poput naziva reda poslova, klase mapper, klase reduktora, klase izlaznog ključa i klase izlazne vrijednosti.

Posljednja konfiguracija zadatka MapReduce je ulazno-izlazni direktorij u HDFS-u. Ulazni direktorij je podaci direktorij koji je pohranjen u korijenskoj stazi NameNode . Napokon ćemo odrediti element kill ako posao ne uspije.

Sada moramo premjestiti WordCountTest mapa u HDFS-u, kao što smo naveli u oozie.wf.application.path nekretnina u posao.svojstva datoteka. Dakle, kopiramo WordCountTest u Hadoop korijenskom direktoriju.

Naredba: hadoop fs -put WordCountTest /

Da biste provjerili, možete otići na korisničko sučelje NameNode Web i provjeriti je li mapa prenesena u korijenski direktorij HDFS-a ili nije.

Sada smo svi spremni krenuti naprijed i izvršiti posao.

Naredba: oozie posao –oozie http: // localhost: 11000 / oozie -config job.properties -run

Nakon što izvršimo svoj posao, dobit ćemo ID posla (tj. 0000009-171219160449620-oozie-edur-W ) kao što je prikazano na gornjoj slici. Možete otići i provjeriti posao koji ste poslali u Oozie Web UI tj. lokalnihost: 11000 . Na donjoj slici možete vidjeti da je posao koji smo poslali naveden dolje.

Ako ćete promatrati na gornjoj slici, vidjet ćete ID posla, naziv posla, status posla, korisnika koji je poslao posao, vrijeme izrade, početak i zadnja izmjena. Možete kliknuti na posao da biste dobili više pojedinosti poput:

  • Informacije o poslu

  • Definicija posla

  • Konfiguracija posla

Kako je status posla uspješan, tako moramo otići u HDFS korijenski direktorij i provjeriti je li izlazni direktorij stvoren ili nije.

Kao što vidite da oozieout direktorij je stvoren u HDFS-u, pa sada pogledajmo izlaznu datoteku koja je stvorena.

Kao što smo vidjeli kako stvoriti posao rada Oozie, sada ćemo napredovati na ovom blogu Apache Oozie Tutorial i razumjeti kako stvoriti posao koordinatora.

Vodič za Apache Oozie: Posao koordinatora brojanja riječi temeljenog na vremenu

U ovom ćemo primjeru stvoriti posao koordinatora brojanja riječi zasnovan na vremenu koji će se izvršiti nakon određenog vremenskog intervala. Možete stvoriti i zakazati posao pomoću Apache Oozie koji se treba izvršavati svakodnevno ili povremeno.

Napredujmo brzo u ovom vodiču za Apache Oozie i stvorimo posao koordinatora. Ovdje ćemo stvoriti tri datoteke, tj. koordinator.svojstva , koordinator.xml & tijek rada.xml datoteka. Opet, ovdje ćemo smjestiti w redni broj staklenka unutar lib direktorij kao što je prikazano na donjoj slici.

Pogledajmo sada ove datoteke pojedinačno. Prvo ćemo započeti s datotekom koordinator.properties.

Ovdje određujemo učestalost izvršenja tijeka rada. Učestalost se uvijek izražava u minutama. U našem će se slučaju ovaj posao koordinatora izvršavati svaki sat između određenog vremena. Frekvencija se koristi za bilježenje periodičnih intervala u kojima se proizvode skupovi podataka, a programi koordinatora trebaju se pokrenuti.

Za definiranje učestalosti u minutama, satima, danima i mjesecima koristite sljedeći format:

$ {koordinata: minute (int n)} n $ {koordinata: minute (45)} -> 45
$ {koordinata: sati (int n)} n * 60 $ {koordinata: sati (3)} -> 180
$ {koordinata: dana (int n)} varijabilna $ {coord: days (2)} -> minute u puna dva dana od trenutnog datuma
$ {koordinata: mjeseci (int n)} varijabilna $ {координаta: mjeseci (1)} -> minute u 1 punom mjesecu od trenutnog datuma

Dalje, definiramo vrijeme početka i završetka posla kako je prikazano na gornjoj slici. vrijeme početka je datum početka vremena za posao & endTime je datum završetka posla.

Dalje, navodimo URL NameNode i ResourceManager, koji će se koristiti za upućivanje datoteke workflow.xml u HDFS i slanje poslova na YARN. Napokon navodimo put workflow.xml koji ćemo pohraniti u HDFS. Također ćemo odrediti put aplikacije u koji će biti pohranjene sve datoteke i direktorij lib.

Druga datoteka je koordinator.xml gdje ćemo koristiti sva svojstva koja smo naveli u koordinator.svojstva datoteka. Sada ćemo prvo odrediti svojstva aplikacije koordinatora, tj. Ime, frekvenciju i vremensku zonu. Dalje ćemo odrediti tijekove rada jedan po jedan. Ovdje imamo samo jedan tijek rada. Dakle, unutar elementa akcije stvorit ćemo element tijeka rada, gdje ćemo odrediti put aplikacije.

Dalje, napredovanje unaprijed moramo stvoriti tijek rada.xml datoteku u kojoj ćemo odrediti zadatak. Sličan je tijek rada.xml datoteku koju smo stvorili u poslu tijeka posla.

Sad ćemo opet ovo premjestiti WordCountTest_TimedBased direktorij na HDFS.

Naredba : hadoop fs -put WordCountTest_TimeBased /

Sada smo svi spremni krenuti naprijed i izvršiti ovaj posao koordinatora u ovom vodiču za Oozie. Idemo naprijed i izvršimo ga.

Naredba : oozie posao –oozie http: // localhost: 11000 / oozie -config koordinator.properties -run

Zabilježite ovaj ID posla koordinatora (tj. 0000010-171219160449620-oozie-edur-C). Pomoći će vam da pronađete svoj posao u Oozie Web UI.

Posao možete vidjeti dolje na kartici Poslovi koordinatora u web korisničkom sučelju Oozie. Slično poslu posla, imamo ime, status, korisnika, učestalost, vrijeme početka i završetka posla. Kada kliknete određeni posao, vidjet ćete detalje posla, kao što je prikazano na slikama u nastavku.

  • Informacije o poslu koordinatora

  • Definicija posla koordinatora

  • Konfiguracija posla koordinatora

Sada, dok smo pregledavali različite kartice. Vratit ćemo se na korijenski direktorij HDFS-a gdje će se stvoriti izlazna mapa. Kao što možete vidjeti na donjoj slici, oozieTimeBasedout direktorij je stvoren, kao što smo naveli u tijek rada.xml datoteka.

Pogledajmo sada izlaznu datoteku koja je stvorena.

Nadam se da vam je ovaj udžbenik Apache Oozie bio informativan. Ako ste zainteresirani da saznate više, možete to proći koja vam govori o velikim podacima i kako Hadoop rješava izazove povezane s velikim podacima.

Sad kad ste razumjeli Apache Oozie, pogledajte Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka tečaj obuke za certificiranje velikih podataka Hadoop pomaže učenicima da postanu stručnjaci za HDFS, pređu, MapReduce, svinju, košnicu, HBase, Oozie, Flume i Sqoop koristeći slučajeve korištenja u stvarnom vremenu na maloprodaji, društvenim mrežama, zrakoplovstvu, turizmu i financijama.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.