„Oozie“ mokymo programa: sužinokite, kaip suplanuoti „Hadoop“ darbus



„Apache Oozie“ mokymo programa: „Oozie“ yra darbo eigos planavimo sistema, skirta valdyti „Hadoop“ užduotis. Tai yra keičiama, patikima ir išplečiama sistema.

Prieš pradėdami šią „Apache Oozie“ mokymo programą, supraskite, kur naudojama planavimo sistema. Realaus laiko scenarijuose viena užduotis priklauso nuo kitų darbų, pvz., „MapReduce“ užduoties išvestis gali būti perduota „Hive“ užduočiai tolesniam apdorojimui. Kitas scenarijus gali būti užduočių rinkinio planavimas pagal laiką, pvz., Dienos, savaitės, mėnesio ar duomenų prieinamumą. „Apache Oozie“ suteikia jums galimybę lengvai valdyti tokio pobūdžio scenarijus. Štai kodėl „Apache Oozie“ yra svarbi programos dalis .

Šiame „Apache Oozie“ mokymo tinklaraštyje aptarsime:



  • Apache Oozie Įvadas
  • „Oozie“ darbo eiga
  • „Oozie“ koordinatorė
  • Oozie Bundle
  • Žodžių skaičiavimo darbo eigos darbas
  • Laiko žodžių skaičiavimo koordinatoriaus darbas

Šią „Oozie“ mokymo programą pradėsime pristatydami „Apache Oozie“. Tada eisime į priekį, suprasime darbo vietų, kurias galima sukurti ir vykdyti naudojant „Apache Oozie“, tipus.

„Apache Oozie“ mokymo programa: „Apache Oozie“ įvadas

Apache Oozie - Oozie pamoka - Edureka„Apache Oozie“ yra planavimo sistema, skirta valdyti ir vykdyti „Hadoop“ užduotis paskirstytoje aplinkoje. Mes galime sukurti norimą vamzdyną derindami kitokias užduotis. Tai gali būti jūsų „Hive“, „Pig“, „Sqoop“ arba „MapReduce“ užduotis. Naudodami „Apache Oozie“ taip pat galite suplanuoti savo darbus. Užduoties sekoje taip pat galima užprogramuoti du ar daugiau darbų lygiagrečiai vienas kitam. Tai yra keičiama, patikima ir išplečiama sistema.



„Oozie“ yra atvirojo šaltinio „Java“ žiniatinklio programa, atsakinga už darbo eigos veiksmų suaktyvinimą. Savo ruožtu užduotims atlikti jis naudoja „Hadoop“ vykdymo variklį.

Apache Oozie nustato užduočių atlikimą per atgalinį skambutį ir apklausą. Kai „Oozie“ pradeda užduotį, ji pateikia unikalų atgalinio HTTP URL užduotį ir praneša apie tą URL, kai užduotis bus baigta. Jei užduoties nepavyksta iškviesti atgalinio URL, Oozie gali apklausti užduotį, kad ji būtų baigta.

Apache Oozie yra trijų tipų darbai:



  • „Oozie“ darbo eigos darbai & minusas Tai yra nukreiptieji cikliniai grafikai (DAG), kurie nurodo atliktinų veiksmų seką.
  • „Oozie“ koordinatorės darbai & minusas Tai susideda iš darbo eigos užduočių, kurias sukelia laikas ir duomenų prieinamumas.
  • „Oozie Bundles“ & minusas Tai gali būti vadinama kelių koordinatorių ir darbo eigos užduočių paketu.

Dabar supraskime visus šiuos darbus po vieną.

Apache Oozie pamoka: Oozie darbo eiga

Darbo eiga yra veiksmų seka, išdėstyta tiesioginiame acikliniame grafike (DAG). Veiksmai priklauso vienas nuo kito, nes kitą veiksmą galima atlikti tik po dabartinio veiksmo išvesties. Darbo eigos veiksmas gali būti kiaulės veiksmas, avilio veiksmas, „MapReduce“ veiksmas, „Shell“ veiksmas, „Java“ veiksmas ir kt. Gali būti sprendimų medžiai, kurie nuspręs, kaip ir kokiomis sąlygomis darbas turi būti vykdomas.

Pagal darbą galime sukurti įvairių tipų veiksmus, o kiekvienas veiksmo tipas gali turėti savo tipo žymas.Prieš vykdydami darbo eigą, darbo eiga ir scenarijai ar stiklainiai turėtų būti dedami į HDFS kelią.

Komanda: „oozie job“ - oozie http: // localhost: 11000 / oozie -config job.properties -run

Norėdami patikrinti darbo būseną, galite eiti į „Oozie“ žiniatinklio konsolę, t. http: // host_name: 11000 . Spustelėję darbą pamatysite darbo būseną.

Tais atvejais, kai norime atlikti kelis darbus lygiagrečiai, galime naudoti Šakutė . Kai mes naudojame šakę, mes turime naudoti „Join“ kaip šaką galiniam mazgui. Kiekvienoje šakėje turėtų būti sujungimas. „Join“ daro prielaidą, kad visi mazgai, vykdantys lygiagrečiai, yra vienos šakės vaikas. Pavyzdžiui, vienu metu galime sukurti dvi lenteles, lygiagrečiai.

Jei norime atlikti veiksmą pagal sprendimo išvestį, galime pridėti sprendimo žymas. Pavyzdžiui, jei jau turime avilio lentelę, jos nebereikės kurti. Esant tokiai situacijai, galime pridėti sprendimo žymą nevykdyti lentelės kūrimo veiksmų, jei lentelė jau yra. Sprendimo mazguose yra jungiklio žymė, panaši į jungiklio raidę.

Darbo sekimo, vardo mazgo, scenarijaus ir parametro reikšmę galima perduoti tiesiogiai. Bet tai tampa sunku valdyti. Čia praverčia konfigūracijos failas (t. Y. Nuosavybės failas).

Apache Oozie pamoka: Oozie koordinatorė

Naudodami „Koordinatorių“ galite suplanuoti sudėtingas ir reguliariai suplanuotas darbo eigas. „Oozie“ koordinatoriai suaktyvina darbo eigos užduotis, atsižvelgdami į laiko, duomenų ar įvykių predikatus. Darbo eigos darbo koordinatoriaus viduje prasideda, kai tenkinama duota sąlyga.

Koordinatoriaus darbams reikalingos apibrėžtys:

  • pradžia & minusas Darbo pradžios laikas.
  • pabaiga & atėmus darbo pabaigos laiką.
  • laiko zona & minusas koordinatoriaus programos laiko juosta.
  • dažnis & minusas Darbų atlikimo dažnis minutėmis.

Yra dar keletas valdymo informacijos savybių:

  • laikas baigėsi & minusas Maksimalus laikas minutėmis, kurio laukia veiksmas, kad įvykdytų papildomas sąlygas, prieš išmetant. 0 nurodo, kad jei įvykio metu visi įvestiniai įvykiai nėra patenkinti, veiksmas turėtų nedelsiant pasibaigti. -1 rodo, kad nėra skirtojo laiko, veiksmas lauks amžinai. Numatytoji vertė yra -1.
  • sutapimas & minusas Maksimalus darbų, kurie gali būti atliekami lygiagrečiai, skaičius. Numatytoji vertė yra 1.
  • vykdymas - Nurodoma vykdymo tvarka, jei keli koordinatoriaus darbo egzemplioriai atitinka jų vykdymo kriterijus. Gali būti:
    • FIFO (numatytasis)
    • LIFO
    • PASKUTINIS_TIK

Komanda: oozie job –oozie http: // localhost: 11000 / oozie -config -run

Jei pateikiant koordinatoriaus užduotį apibrėžime naudojama konfigūracijos ypatybė nepateikiama kartu su darbo konfigūracija, užduotis nepavyks.

ką __init__ reiškia pitone

Apache Oozie pamoka: Oozie Bundle

„Oozie Bundle“ sistemaleidžia apibrėžti ir vykdyti koordinatorių programų rinkinį, dažnai vadinamą duomenų perdavimo linija. „Oozie“ pakete nėra aiškios koordinatorių programų priklausomybės. Tačiau galite naudoti koordinatoriaus programų priklausomybę nuo duomenų, kad sukurtumėte numanomą duomenų programų vamzdyną.Galite paleisti / sustabdyti / sustabdyti / atnaujinti / pakartotinai paleisti rinkinį. Tai suteikia geresnę ir lengvą valdymo kontrolę.

Pradinis laikas & minusas Laikas, kada turėtų prasidėti paketas ir pateikti koordinatoriaus paraiškas.

Pažengę šioje „Apache Oozie“ pamokoje suprasime, kaip sukurti „Workflow Job“.

„Apache Oozie“ mokymo programa: žodžių skaičiavimo darbo eigos darbas

Šiame pavyzdyje mes atliksime „Word Count Job“ naudodami „Apache Oozie“. Čia neaptarsime, kaip parašyti „MapReduce“ žodžių skaičiavimo programą. Taigi, prieš pradėdami šią „Apache Oozie“ mokymo programą, turite ją atsisiųsti žodžių skaičiavimo indelis failą. Dabar sukurkite „WordCountTest“ katalogą, kuriame įdėsime visus failus. Sukurkite „lib“ katalogą, kuriame įdėsime žodžių skaičiavimo indelį, kaip parodyta toliau pateiktuose paveikslėliuose.

Dabar leidžia judėti į priekį ir kurti darbas.savybės & workflow.xml failus, kur nurodysime darbą ir su juo susijusius parametrus.

darbas.savybės

Pirma, mes kuriame darbas.savybės failą, kuriame mes apibrėžiame „NameNode & ResourceManager“ kelią. „NameNode“ kelias reikalingas norint išspręsti darbo eigos katalogo kelią ir „jobTracker“ kelias padės pateikti užduotį YARN. Turime pateikti workflow.xml failas, kuris turėtų būti saugomas HDFS.

workflow.xml

Toliau turime sukurti workflow.xml failą, kuriame mes apibrėžsime visus savo veiksmus ir juos atliksime. Pirmiausia turime nurodyti darbo eigos-programos pavadinimą, t.y. „WorkflowRunnerTest“ . Tada mes nurodome pradinis mazgas . Pradinis mazgas ( į pradėti žyma ) yra darbo eigos darbo pradinis taškas. Jis rodo pirmojo darbo eigos mazgo link, nuo kurio turėtų prasidėti darbas. Kaip matote žemiau esančiame paveikslėlyje, kitas mazgas yra sankryža0 nuo kur prasidės darbas.

Toliau veiksmo mazge nurodome vykdytiną užduotį. Čia vykdome „MapReduce WordCount“ užduotį. Turime nurodyti konfigūracijas, reikalingas šiai „MapReduce“ užduočiai vykdyti. Mes apibrėžiame darbo stebėjimo priemonę ir „NameNode“ adresą.

Kitas yra parengtas elementas, kuris naudojamas tik katalogų valymui, prieš vykdant veiksmą. Čia atliekame HDFS ištrynimo operaciją out1 aplanką, jei jis jau sukurtas. Paruošimo žyma naudojama kuriant arba ištrinant aplanką prieš vykdant užduotį. Tada mes nurodome „MapReduce“ ypatybes, pvz., Darbo eilės pavadinimą, žemėlapio klasę, reduktoriaus klasę, išvesties rakto klasę ir išvesties vertės klasę.

Paskutinė „MapReduce“ užduoties konfigūracija yra HDFS įvesties ir išvesties katalogas. Įvesties katalogas yra duomenis katalogą, kuris saugomas „NameNode“ šakniniame kelyje . Pagaliau mes nurodysime žudymo elementą, jei darbas nepavyks.

Dabar turime perkelti „WordCountTest“ aplanką HDFS, kaip mes nurodėme oozie.wf.application.path turtas darbas.savybės failą. Taigi, mes kopijuojame „WordCountTest“ aplanką Hadoop šakniniame kataloge.

Komanda: hadoop fs -put WordCountTest /

Norėdami patikrinti, galite eiti į „NameNode“ žiniatinklio vartotojo sąsają ir patikrinti, ar aplankas buvo įkeltas į HDFS šakninį katalogą, ar ne.

Dabar visi esame pasirengę judėti į priekį ir atlikti darbo eigos užduotį.

Komanda: „oozie job“ - oozie http: // localhost: 11000 / oozie -config job.properties -run

Kai atliksime savo darbą, gausime darbo ID (t. Y. 0000009-171219160449620-oozie-edur-W ), kaip parodyta aukščiau esančiame paveikslėlyje. Galite eiti ir patikrinti užduotį, kurią pateikėte „Oozie“ žiniatinklio vartotojo sąsajoje, t. vietinis šeimininkas: 11000 . Žemiau esančiame paveikslėlyje galite pamatyti mūsų pateiktą darbą.

Jei pastebėsite aukščiau pateiktame paveikslėlyje, pamatysite darbo ID, darbo pavadinimą, darbo būseną, naudotoją, kuris pateikė darbą, sukūrimo laiką, pradžios ir paskutinio pakeitimo laiką. Galite spustelėti darbą, kad gautumėte daugiau informacijos, pvz .:

  • Informacija apie darbą

  • Darbo apibrėžimas

  • Darbo konfigūracija

Kadangi darbo būsena pavyko, turime pereiti į HDFS šakninį katalogą ir patikrinti, ar išvesties katalogas buvo sukurtas, ar ne.

Kaip matote, kad oozieout katalogas buvo sukurtas HDFS, todėl dabar pažvelkime į sukurtą išvesties failą.

atvirkštinis skaičius java

Kaip matėme, kaip sukurti „Oozie“ darbo eigos užduotį, dabar pateksime į šį „Apache Oozie“ mokymo tinklaraštį ir suprasime, kaip sukurti koordinatoriaus darbą.

Apache Oozie mokymo programa: Žodžių skaičiavimo koordinatoriaus darbas pagal laiką

Šiame pavyzdyje sukursime žodžių skaičiavimo koordinatoriaus laiką, kuris bus vykdomas po tam tikro laiko intervalo. Galite sukurti ir suplanuoti darbą naudodami „Apache Oozie“, kurį reikia vykdyti kasdien arba periodiškai.

Greitai paženkime šioje „Apache Oozie“ pamokoje ir sukurkime koordinatoriaus darbą. Čia sukursime tris failus, t.y. koordinatorius.savybės , koordinatorius.xml & workflow.xml failą. Vėlgi, čia mes įdėsime w ordcount stiklainis viduje lib katalogą, kaip parodyta žemiau esančiame paveikslėlyje.

Dabar pažvelkime į šiuos failus atskirai. Pirmiausia pradėsime nuo failo koordinatorius.properties.

Čia mes nurodome darbo eigos vykdymo dažnumą. Dažnis visada išreiškiamas minutėmis. Mūsų atveju šis koordinatoriaus darbas bus atliekamas kartą per valandą tarp nurodyto laiko. Dažnis naudojamas fiksuoti periodinius intervalus, kuriais gaminami duomenų rinkiniai, ir planuojama vykdyti koordinatorių programas.

Nurodykite dažnį minutėmis, valandomis, dienomis ir mėnesiais naudodami šį formatą:

$ {coord: minutės (int n)} n $ {coord: minutės (45)} -> 45
$ {coord: valandos (int n)} n * 60 $ {coord: valandos (3)} -> 180
$ {coord: dienos (int n)} kintamasis $ {coord: days (2)} -> minutės per 2 visas dienas nuo dabartinės datos
$ {coord: mėn. (int n)} kintamasis $ {coord: months (1)} -> minutės per 1 mėnesį nuo dabartinės datos

Toliau mes apibrėžiame darbo pradžios ir pabaigos laiką, kaip parodyta aukščiau esančiame paveikslėlyje. pradžios laikas yra darbo pradžios laikas ir pabaigos laikas yra darbo pabaigos laikas.

Toliau nurodome „NameNode & ResourceManager“ URL, kuris bus naudojamas nukreipiant failą workflow.xml HDFS ir pateikiant užduotis atitinkamai YARN. Pagaliau mes nurodome workflow.xml kelią, kurį išsaugosime HDFS. Taip pat nurodysime programos kelią, kuriame bus saugomi visi failai ir „lib“ katalogas.

Antrasis failas yra koordinatorius.xml kur naudosime visas savybes, kurias nurodėme koordinatorius.savybės failą. Pirmiausia mes nurodysime koordinatoriaus programos ypatybes, ty pavadinimą, dažnį ir laiko juostą. Toliau mes nurodysime darbo eigą po vieną. Čia mes turime tik vieną darbo eigą. Taigi, veiksmo elemento viduje sukursime darbo eigos elementą, kuriame nurodysime programos kelią.

Toliau, žengdami į priekį, turime sukurti workflow.xml failas, kuriame nurodysime užduotį. Tai panašu į workflow.xml failą, kurį sukūrėme darbo eigos užduotyje.

Dabar vėl tai perkelsime „WordCountTest_TimedBased“ katalogą į HDFS.

Komanda : hadoop fs -put WordCountTest_TimeBased /

Dabar visi esame pasirengę judėti į priekį ir atlikti šį koordinatoriaus darbą šioje „Oozie“ pamokoje. Eikime į priekį ir vykdykime.

Komanda : „oozie job“ - oozie http: // localhost: 11000 / oozie -config coordinator.properties -run

Užrašykite šį koordinatoriaus darbo ID (t. Y. 0000010-171219160449620-oozie-edur-C). Tai padės jums sužinoti savo darbą „Oozie“ žiniatinklio vartotojo sąsajoje.

Užduotį galite pamatyti „Oozie“ žiniatinklio vartotojo sąsajos skirtuke „Koordinatoriaus darbai“. Panašiai kaip „Workflow“ užduotyje turime vardą, būseną, vartotoją, dažnumą, darbo pradžios ir pabaigos laiką. Spustelėję konkretų darbą, pamatysite išsamią darbo informaciją, kaip parodyta žemiau esančiuose paveikslėliuose.

  • Koordinatoriaus darbo informacija

kas yra skaitytuvų klasė java
  • Koordinatoriaus darbo apibrėžimas

  • Koordinatoriaus darbo konfigūracija

Dabar, kai peržiūrėjome skirtingus skirtukus. Grįšime į HDFS šakninį katalogą, kuriame bus sukurtas išvesties aplankas. Kaip matote žemiau esančiame paveikslėlyje, oozieTimeBasedout katalogas buvo sukurtas, kaip mes nurodėme workflow.xml failą.

Pažvelkime į sukurtą išvesties failą.

Tikiuosi, kad radote šį „Apache Oozie Tutorial“ tinklaraštį informatyviu. Jei norite sužinoti daugiau, galite tai išbandyti kuriame pasakojama apie „Big Data“ ir kaip Hadoopas sprendžia su „Big Data“ susijusius iššūkius.

Dabar, kai supratote „Apache Oozie“, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka Big Data Hadoop“ sertifikavimo mokymo kursas padeda besimokantiesiems tapti HDFS, verpalų, „MapReduce“, „Pig“, „Hive“, „HBase“, „Oozie“, „Flume“ ir „Sqoop“ ekspertais, naudojant realaus laiko naudojimo atvejus mažmeninės prekybos, socialinės žiniasklaidos, aviacijos, turizmo, finansų srityse.

Turite mums klausimą? Prašau paminėti tai komentarų skiltyje ir mes su jumis susisieksime.