Vadnica za Oozie: Naučite se razporediti svoja delovna mesta Hadoop



Vadnica za Apache Oozie: Oozie je sistem za načrtovanje delovnega toka za upravljanje opravil Hadoop. To je razširljiv, zanesljiv in razširljiv sistem.

Preden začnemo z vadnico Apache Oozie, nam povejte, kje se uporablja sistem načrtovalcev. V scenarijih v realnem času je eno opravilo odvisno od drugih opravil, na primer izhod naloge MapReduce se lahko posreduje nalogo Hive za nadaljnjo obdelavo. Naslednji scenarij je lahko načrtovanje nabora nalog na podlagi časa, na primer dnevnega, tedenskega, mesečnega ali na podlagi razpoložljivosti podatkov. Apache Oozie vam ponuja moč za enostavno obvladovanje tovrstnih scenarijev. Zato je Apache Oozie pomemben del .

V tem blogu z vadnicami za Apache Oozie bomo obravnavali:





  • Apache Oozie Uvod
  • Oozie potek dela
  • Oozie koordinator
  • Oozie sveženj
  • Opravilo poteka dela štetja besed
  • Časovno zasnovano besedilo koordinatorja zaposlitve

To vajo Oozie bomo začeli z uvedbo Apache Oozie. Nato bomo razumeli vrste delovnih mest, ki jih je mogoče ustvariti in izvajati z uporabo Apache Oozie.

Vadnica za Apache Oozie: Uvod v Apache Oozie

Apache Oozie - Oozie Vadnica - EdurekaApache Oozie je sistem razporejevalnika za upravljanje in izvajanje del Hadoop v porazdeljenem okolju. Ustvarimo lahko želeni cevovod s kombiniranjem različnih vrst nalog. To je lahko vaša naloga Hive, Pig, Sqoop ali MapReduce. Z uporabo Apache Oozie lahko tudi načrtujete svoja dela. V zaporedju naloge je mogoče programirati tudi dve ali več opravil, ki se izvajajo vzporedno med seboj. To je razširljiv, zanesljiv in razširljiv sistem.



Oozie je odprtokodna spletna aplikacija Java, ki je odgovorna za sprožitev dejanj poteka dela. V zameno pa uporablja izvršilni mehanizem Hadoop za izvajanje nalog.

Apache Oozie zazna dokončanje nalog s povratnim klicem in anketiranjem. Ko Oozie zažene nalogo, ji zagotovi edinstven URL HTTP za povratni klic in ga obvesti, ko je naloga končana. Če naloga ne prikliče URL-ja za povratni klic, lahko Oozie opravi opravilo za dokončanje.

V Apache Oozie obstajajo tri vrste delovnih mest:



  • Oozie Workflow Jobs & minus To so usmerjeni aciklični grafi (DAG), ki določajo zaporedje dejanj, ki jih je treba izvesti.
  • Oozie koordinator zaposlitve & minus Sestavljajo jih opravila poteka dela, ki jih sprožijo čas in razpoložljivost podatkov.
  • Oozie svežnji & minus Te lahko označimo kot paket več koordinatorjev in delovnih mest.

Zdaj pa pojmo vsa ta dela eno po eno.

Vadnica za Apache Oozie: Potek dela Oozie

Potek dela je zaporedje dejanj, razporejenih v neposrednem acikličnem grafu (DAG). Ukrepi so odvisni drug od drugega, saj je naslednje dejanje mogoče izvesti šele po izhodu trenutnega dejanja. Dejanje poteka dela je lahko dejanje prašiča, dejanje panja, dejanje MapReduce, dejanje lupine, dejanje Java itd. Obstajajo lahko drevesa odločitev, ki odločajo, kako in pod kakšnim pogojem naj delo teče.

Na podlagi opravila lahko ustvarimo različne vrste dejanj in vsaka vrsta dejanja ima lahko svojo vrsto oznak.Potek dela in skripte ali kozarce je treba pred izvajanjem delovnega toka postaviti v pot HDFS.

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

Za preverjanje stanja opravila lahko obiščete spletno konzolo Oozie, tj. http: // ime_gostitelja: 11000 . S klikom na opravilo boste videli njegovo stanje.

V scenarijih, kjer želimo vzporedno izvajati več opravil, lahko uporabimo Vilice . Kadarkoli uporabimo fork, moramo kot končno vozlišče fork uporabiti Join. Za vsako vilico mora biti spoj. Join predpostavlja, da so vsa vozlišča, ki se izvajajo vzporedno, podrejena posamezni vilici. Na primer, lahko vzporedno ustvarimo dve tabeli hkrati.

Če želimo zagnati dejanje na podlagi rezultata odločitve, lahko dodamo oznake odločitve. Če na primer že imamo panjsko mizo, je ne bomo morali ponovno ustvariti. V tem primeru lahko dodamo oznako odločitve, da ne bomo izvajali korakov ustvarjanja tabele, če tabela že obstaja. Vozlišča odločanja imajo oznako stikala, podobno kot črka stikala.

Vrednost sledilca opravil, vozlišča imena, skripta in parametra lahko posredujete neposredno. Vendar je to težko obvladati. Tu je priročna konfiguracijska datoteka (tj. Datoteka .property).

Vadnica za Apache Oozie: Koordinator Oozie

S programom Coordinator lahko načrtujete tako zapletene poteke dela kot tudi poteke, ki so redno razporejeni. Oozie Coordinators sproži opravila delovnih tokov glede na predikate časa, podatkov ali dogodkov. Potoki dela znotraj koordinatorja opravil se začnejo, ko je izpolnjen dani pogoj.

Definicije, potrebne za delovna mesta koordinatorja, so:

  • začetek & minus Začetni datum in čas za opravilo.
  • konec & minus Končni datum in čas za opravilo.
  • časovni pas & minus Časovni pas aplikacije koordinatorja.
  • frekvenca & minus Pogostost izvajanja opravil v minutah.

Za nadzorne informacije je na voljo še nekaj lastnosti:

  • odmor & minus Najdaljši čas v minutah, v katerem bo dejanje počakalo, da bo izpolnilo dodatne pogoje, preden bo zavrženo. 0 pomeni, da če vsi vhodni dogodki v času materializacije dejanja niso izpolnjeni, mora dejanje takoj poteči. -1 pomeni, da ni potekel čas, akcija bo čakala večno. Privzeta vrednost je -1.
  • sočasnost & minus Največje število dejanj za opravilo, ki se lahko izvaja vzporedno. Privzeta vrednost je 1.
  • usmrtitev - Določa vrstni red izvršitve, če je več primerkov opravila koordinatorja izpolnilo svoja merila za izvedbo. Lahko je:
    • FIFO (privzeto)
    • LIFO
    • ZADNJE_ SAMO

Ukaz: oozie delo –oozie http: // localhost: 11000 / oozie -config -run

Če konfiguracijska lastnost, uporabljena v definiciji, ni podana s konfiguracijo opravila med oddajo opravila koordinatorja, oddaja opravila ne bo uspela.

Vadnica za Apache Oozie: Oozie Bundle

Sistem Oozie Bundleomogoča definiranje in izvajanje nabora aplikacij koordinatorjev, ki se pogosto imenuje podatkovni trak. V paketu Oozie med aplikacijami koordinatorjev ni izrecne odvisnosti. Vendar pa lahko uporabite podatkovno odvisnost aplikacij koordinatorjev, da ustvarite implicitni cevovod aplikacijskih podatkov.Snop lahko začnete / ustavite / začasno ustavite / nadaljujete / ponovite. Omogoča boljši in enostaven operativni nadzor.

Začetni čas & minus Čas, ko se mora sveženj zagnati in oddati prijave za koordinatorje.

V nadaljevanju te vadnice za Apache Oozie bomo razumeli, kako ustvariti opravilo dela.

Vadnica za Apache Oozie: Opravilo dela pri štetju besed

V tem primeru bomo opravili opravilo za štetje besed z uporabo Apache Oozie. Tu ne bomo razpravljali o tem, kako napisati program za štetje besed MapReduce. Torej, preden sledite tej vadnici za Apache Oozie, jo morate prenesti kozarec za štetje besed mapa. Zdaj ustvarite imenik WordCountTest, kamor bomo shranili vse datoteke. Ustvarite lib imenik, kamor bomo postavili kozarec za štetje besed, kot je prikazano na spodnjih slikah.

Zdaj pa gremo naprej in ustvarjamo delo.lastnosti & workflow.xml datotek, kjer bomo določili opravilo in z njim povezane parametre.

delo.lastnosti

Najprej ustvarjamo delo.lastnosti datoteko, kjer definiramo pot do NameNode & ResourceManager. Za razrešitev poti do imenika delovnega toka je potrebna pot NameNode, pot jobTracker pa bo pomagala pri oddaji opravila v YARN. Zagotoviti moramo pot workflow.xml datoteko, ki naj bo shranjena v HDFS.

workflow.xml

Nato moramo ustvariti workflow.xml datoteko, kjer bomo definirali vsa svoja dejanja in jih izvedli. Najprej moramo določiti ime aplikacije za potek dela, tj. WorkflowRunnerTest . Nato določimo začetno vozlišče . Začetno vozlišče ( v začeti oznaka ) je vstopna točka za potek dela. Kaže na prvo vozlišče delovnega toka, od koder naj se opravilo začne. Kot lahko vidite na spodnji sliki, je naslednje vozlišče križišče0 od kod se bo delo začelo.

Nato v vozlišču dejanj določimo nalogo, ki jo je treba izvesti. Tukaj izvajamo nalogo MapReduce WordCount. Navesti moramo konfiguracije, potrebne za izvajanje te naloge MapReduce. Določamo sledilnik opravil in naslov NameNode.

Naslednji je pripravljeni element, ki se uporablja izključno za čiščenje imenika pred izvajanjem dejanja. Tukaj izvajamo operacijo brisanja v HDFS za brisanje datoteke out1 mapo, če je že ustvarjena. Oznaka za pripravo se uporablja za ustvarjanje ali brisanje mape pred izvajanjem opravila. Nato določimo lastnosti MapReduce, kot so ime čakalne vrste, razred mapper, razred reduktorja, razred izhodnega ključa in razred izhodne vrednosti.

Zadnja konfiguracija naloge MapReduce je vhodno-izhodni imenik v HDFS. Vhodni imenik je podatkov imenik, ki je shranjen v korenski poti NameNode . Končno bomo določili element kill, če opravilo ne uspe.

Zdaj moramo premakniti WordCountTest mapa v HDFS, kot smo določili v oozie.wf.application.path nepremičnine v delo.lastnosti mapa. Torej, kopiramo WordCountTest mapo v korenskem imeniku Hadoop.

Ukaz: hadoop fs -put WordCountTest /

Če želite preveriti, lahko obiščete spletni uporabniški vmesnik NameNode in preverite, ali je bila mapa naložena v korenski imenik HDFS ali ne.

Zdaj smo vsi pripravljeni napredovati in izvesti opravilo poteka dela.

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

kaj je navidezna funkcija v javi

Ko bomo opravili svoje delo, bomo dobili ID delovnega mesta (tj. 0000009-171219160449620-oozie-edur-W ), kot je prikazano na zgornji sliki. Lahko greste preveriti delo, ki ste ga oddali v spletnem uporabniškem vmesniku Oozie, tj. localhost: 11000 . Na spodnji sliki lahko vidite, da je delo, ki smo ga oddali, navedeno spodaj.

Če boste opazili na zgornji sliki, boste videli ID opravila, ime opravila, status opravila, uporabnika, ki je poslal opravilo, čas ustvarjanja, začetek in zadnjo spremembo. Če želite dobiti več podrobnosti, na primer:

  • Informacije o zaposlitvi

  • Opredelitev delovnega mesta

  • Konfiguracija opravila

Ker je stanje opravila uspešno, moramo iti v korenski imenik HDFS in preveriti, ali je bil izhodni imenik ustvarjen ali ne.

Kot lahko vidite, je oozieout imenik je bil ustvarjen v HDFS, zato si oglejmo izhodno datoteko, ki je bila ustvarjena.

Kot smo videli, kako ustvariti opravilo delovnega toka Oozie, bomo zdaj napredovali v tem blogu Apache Oozie Tutorial in razumeli, kako ustvariti delovno mesto koordinatorja.

Vadnica Apacheja Oozieja: Delo koordinatorja za štetje besed na podlagi časa

V tem primeru bomo ustvarili opravilo koordinatorja štetja besed na podlagi časa, ki se bo izvedlo po določenem časovnem intervalu. Delo lahko ustvarite in razporedite z uporabo Apache Oozie, ki ga je treba izvajati vsak dan ali občasno.

Hitro napredujmo v tej vadnici Apache Oozie in ustvarimo delovno mesto koordinatorja. Tu bomo ustvarili tri datoteke, tj. koordinator.lastnosti , koordinator.xml & workflow.xml mapa. Spet bomo tukaj postavili w ordcount kozarec znotraj lib imenik, kot je prikazano na spodnji sliki.

kaj je java fižol

Zdaj pa si oglejmo te datoteke posebej. Najprej bomo začeli z datoteko koordinator.properties.

Tu določimo pogostost izvajanja poteka dela. Pogostost je vedno izražena v minutah. V našem primeru se bo to delo koordinatorja izvedlo enkrat na uro med določenim časom. Frekvenca se uporablja za zajemanje periodičnih intervalov, v katerih se proizvajajo nabori podatkov, in načrtovano izvajanje aplikacij koordinatorjev.

Za določanje pogostosti v minutah, urah, dneh in mesecih uporabite naslednjo obliko:

$ {koordinata: minut (int n)} n $ {koordinata: minute (45)} -> 45
$ {koord: ur (int n)} n * 60 $ {koord: ure (3)} -> 180
$ {koord: dni (int n)} spremenljivka $ {координаta: days (2)} -> minute v dveh polnih dneh od trenutnega datuma
$ {koord: mesecev (int n)} spremenljivka $ {koord: mesecev (1)} -> minut v polnem mesecu od trenutnega datuma

Nato določimo čas začetka in konca opravila, kot je prikazano na zgornji sliki. Začetni čas je datum začetka za delo in endTime je končni datum in čas opravila.

Nato določimo URL NameNode in ResourceManager, ki bo uporabljen za napotitev datoteke workflow.xml v HDFS in pošiljanje opravil na YARN. Končno določimo pot workflow.xml, ki jo bomo shranili v HDFS. Določili bomo tudi pot aplikacije, kamor bodo shranjene vse datoteke & lib.

Druga datoteka je koordinator.xml kjer bomo uporabili vse lastnosti, ki smo jih določili v koordinator.lastnosti mapa. Zdaj bomo najprej določili lastnosti aplikacije koordinatorja, tj. Ime, frekvenco in časovni pas. Nato bomo posebej določili poteke dela. Tu imamo samo en potek dela. Torej, znotraj elementa dejanja bomo ustvarili element poteka dela, kjer bomo določili pot aplikacije.

Nato moramo napredovati naprej workflow.xml datoteko, kjer bomo določili nalogo. Podobno je workflow.xml datoteko, ki smo jo ustvarili v opravilu poteka dela.

Zdaj bomo to premaknili WordCountTest_TimedBased imenik na HDFS.

Ukaz : hadoop fs -put WordCountTest_TimeBased /

Zdaj smo vsi pripravljeni napredovati in izvršiti to delo koordinatorja v tej vadnici Oozie. Pojdiva naprej in jo izvrši.

Ukaz : oozie delo –oozie http: // localhost: 11000 / oozie -config koordinator.properties -run

Zapišite si ta ID opravila koordinatorja (tj. 0000010-171219160449620-oozie-edur-C). Pomagal vam bo izslediti vaše delo v spletnem uporabniškem vmesniku Oozie.

Opravilo si lahko ogledate spodaj na zavihku Opravila koordinatorja v spletnem uporabniškem vmesniku Oozie. Podobno kot opravilo poteka dela imamo ime, status, uporabnika, pogostost, čas začetka in konca opravila. Ko kliknete določeno opravilo, boste videli podrobnosti o opravilu, kot je prikazano na spodnjih slikah.

  • Informacije o delovnem mestu koordinatorja

  • Opredelitev delovnega mesta koordinatorja

  • Konfiguracija opravila koordinatorja

Zdaj, ko smo si ogledali različne zavihke. Vrnili se bomo v korenski imenik HDFS, kjer bo ustvarjena izhodna mapa. Kot lahko vidite na spodnji sliki, oozieTimeBasedout imenik je bil ustvarjen, kot smo določili v workflow.xml mapa.

Zdaj pa si oglejmo izhodno datoteko, ki je bila ustvarjena.

Upam, da vam je bil ta blog Apache Oozie Tutorial informativen. Če vas zanima več, lahko to storite ki vam govori o velikih podatkih in o tem, kako Hadoop rešuje izzive, povezane z velikimi podatki.

Zdaj, ko ste razumeli Apache Oozie, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Tečaj Edureka Big Data Hadoop Certification Training pomaga učencem, da postanejo strokovnjaki za HDFS, prejo, MapReduce, Pig, Hive, HBase, Oozie, Flume in Sqoop z uporabo primerov uporabe v realnem času na področju maloprodaje, družbenih medijev, letalstva, turizma in financ.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.