Oozie juhendaja: saate teada, kuidas oma Hadoopi töökohti ajastada

Apache Oozie juhendaja: Oozie on Hadoopi tööde haldamiseks mõeldud töövoo planeerija süsteem. See on skaleeritav, usaldusväärne ja laiendatav süsteem.

Enne selle Apache Oozie õpetuse alustamist andke meile aru, kus kasutatakse ajastussüsteemi. Reaalajas stsenaariumide korral sõltub üks töö teistest töödest, näiteks MapReduce'i ülesande väljund võidakse edasitoimetamiseks edastada Hive'i tööle. Järgmine stsenaarium võib olla ülesannete komplekti ajastamine aja alusel, näiteks päevane, nädala-, kuu- või andmete kättesaadavuse põhjal. Apache Oozie annab teile võimaluse sellist tüüpi stsenaariumide hõlpsaks käsitsemiseks. Seetõttu on Apache Oozie oluline osa .



Selles Apache Oozie õpetusblogis käsitleme järgmist:



  • Apache Oozie Sissejuhatus
  • Oozie töövoog
  • Oozie koordinaator
  • Oozie kimp
  • Sõnade arvu töövoo töö
  • Ajapõhine sõnade loendamise koordinaatori töö

Alustame seda Oozie õpetust Apache Oozie tutvustamisega. Edasi liikudes saame aru töökohtade tüüpidest, mida saab Apache Oozie abil luua ja teostada.

Apache Oozie juhendaja: Apache Oozie tutvustus

Apache Oozie - Oozie juhendaja - EdurekaApache Oozie on ajastussüsteem Hadoopi tööde haldamiseks ja täitmiseks hajutatud keskkonnas. Saame luua soovitud torujuhtme, kombineerides teistsuguseid ülesandeid. See võib olla teie ülesanne Hive, Pig, Sqoop või MapReduce. Apache Oozie abil saate oma tööd ka ajastada. Ülesande järjestuse piires saab programmeerida ka kaks või enam tööd, mis töötavad üksteisega paralleelselt. See on skaleeritav, usaldusväärne ja laiendatav süsteem.



Oozie on avatud lähtekoodiga Java veebirakendus, mis vastutab töövoo toimingute käivitamise eest. See omakorda kasutab ülesannete täitmiseks Hadoopi täitmismootorit.

Apache Oozie tuvastab ülesannete täitmise tagasihelistamise ja küsitluste abil. Kui Oozie käivitab ülesande, pakub see ülesandele ainulaadse tagasihelistamise HTTP URL-i ja teavitab sellest URL-i, kui ülesanne on lõpule viidud. Kui ülesanne ei kutsu tagasi helistamise URL-i, saab Oozie küsida ülesande lõpuleviimiseks.

Apache Oozie's on kolme tüüpi töökohti:



  • Oozie töövoo töökohad & miinus Need on suunatud atsüklilised graafikud (DAG), mis määravad täidetavate toimingute jada.
  • Oozie koordinaatori töökohad & miinus Need koosnevad aja ja andmete kättesaadavuse käivitatud töövoo töödest.
  • Oozie kimbud & miinus Neid võib nimetada mitme koordinaatori ja töövoo tööde paketiks.

Mõelgem nüüd kõik need tööd ükshaaval.

Apache Oozie juhendaja: Oozie töövoog

Töövoog on toimingute jada, mis on paigutatud otseses atsüklilises graafikus (DAG). Toimingud sõltuvad üksteisest, kuna järgmist toimingut saab teostada alles pärast praeguse toimingu väljundit. Töövoo toiming võib olla Pig-tegevus, Hive-toiming, MapReduce-toiming, Shelli-tegevus, Java-toiming jne. Tööpõhimõtet saab otsustada, kuidas ja millistel tingimustel tööd käivitada.

Töö põhjal saame luua erinevat tüüpi toiminguid ja iga tüüpi toimingutel võivad olla oma tüüpi sildid.Töövoog ja skriptid või purgid tuleks enne töövoo käivitamist paigutada HDFS-i teele.

Käsk: oozie töökoht - oozie http: // localhost: 11000 / oozie -config job.properties -run

Töö oleku kontrollimiseks võite minna Oozie veebikonsooli, st. http: // hostinimi: 11000 . Tööle klõpsates näete töö olekut.

Stsenaariumites, kus soovime käivitada paralleelselt mitu tööd, saame seda kasutada Kahvel . Alati, kui kasutame kahvlit, peame hargnemise lõppsõlmeks kasutama liitu. Iga kahvli jaoks peaks olema liitmik. Join eeldab, et kõik paralleelselt töötavad sõlmed on ühe kahvli laps. Näiteks saame paralleelselt luua kaks tabelit korraga.

Kui soovime käivitada toimingu otsuse tulemuse põhjal, võime lisada otsusesildid. Näiteks kui tarulaud on meil juba olemas, ei pea me seda uuesti looma. Sellises olukorras võime lisada otsusesildi, et tabeli loomise samme ei käivitataks, kui tabel on juba olemas. Otsusesõlmedel on lüliti silt, mis on sarnane lüliti juhtumiga.

Tööjälgija, nimesõlme, skripti ja parameetri väärtuse saab edastada otse. Kuid seda on raske hallata. Siinkohal on mugav konfigureerimisfail (s.t.omandifail).

Apache Oozie juhendaja: Oozie koordinaator

Koordinaatori abil saate ajastada nii keerulisi kui ka regulaarselt ajastatud töövooge. Oozie koordinaatorid käivitavad töövoo tööd vastavalt ajale, andmetele või sündmuste predikaatidele. Töökoordinaatori töövood algavad siis, kui etteantud tingimus on täidetud.

Koordinaatori tööde jaoks on vaja järgmisi mõisteid:

  • algus & miinus Töö kuupäeva kellaaja algus.
  • lõpp & miinus töö lõppkuupäev.
  • ajavöönd & miinus koordinaatori rakenduse ajavöönd.
  • sagedus & miinus Tööde teostamise sagedus minutites.

Juhtimisteabe jaoks on saadaval veel mõned omadused:

  • aeg maha & miinus Maksimaalne aeg minutites, mille jooksul toiming ootab lisatingimuste täitmist, enne kui vette visatakse. 0 näitab, et kui kõik sisendsündmused pole tegevuse realiseerumise ajal rahul, peaks toiming viivitamatult aeguma. -1 näitab, et ajalõpp puudub, tegevus ootab igavesti. Vaikeväärtus on -1.
  • samaaegsus & miinus Paralleelselt toimiva töö maksimaalne arv toiminguid. Vaikeväärtus on 1.
  • hukkamine - See määrab täitmiskorralduse, kui mitu koordinaatori töö eksemplari on täitmise kriteeriumidele vastanud. See võib olla:
    • FIFO (vaikimisi)
    • LIFO
    • VIIMASELT

Käsk: oozie job –oozie http: // localhost: 11000 / oozie -config -run

Kui koordinaatori töö esitamisel pole definitsioonis kasutatud konfiguratsiooniatribuuti koos töö konfigureerimisega kaasas, siis töö esitamine nurjub.

Apache Oozie juhendaja: Oozie Bundle

Oozie Bundle süsteemvõimaldab teil määratleda ja käivitada koordinaatorrakenduste komplekti, mida sageli nimetatakse andmejooneks. Oozie komplektis pole koordinaatorrakenduste vahel selget sõltuvust. Kuid kaudse andmesiderakenduse loomiseks võite kasutada koordinaatorrakenduste sõltuvust andmetest.Saate kimpu käivitada / peatada / peatada / jätkata / uuesti käivitada. See annab parema ja hõlpsama juhtimise.

Algusaeg & miinus Kellaaeg peaks algama ja koordinaatoritaotlused esitama.

java klassiraja seadistamine Linuxis

Selles Apache Oozie õpetuses edasi liikudes saame aru, kuidas luua töövoo tööd.

Apache Oozie õpetus: sõnade loendamise töövoo töö

Selles näites täidame Apache Oozie abil Word Count Jobi. Siin me ei aruta selle üle, kuidas kirjutada MapReduce sõnade loendamise programm. Niisiis, enne selle Apache Oozie õpetuse järgimist peate selle alla laadima sõnade loendamise purk faili. Nüüd looge kataloog WordCountTest, kuhu paigutame kõik failid. Looge kataloog lib, kuhu paigutame sõnade loendipurgi, nagu on näidatud allolevatel piltidel.

Nüüd laseb edasi liikuda ja luua töö.omadused & workflow.xml failid, kus täpsustame töö ja sellega seotud parameetrid.

töö.omadused

Esiteks loome a töö.omadused fail, kus määratleme NameNode & ResourceManageri tee. Töövoo kataloogi tee lahendamiseks on vajalik NameNode'i tee ja jobTrackeri tee aitab töö YARN-ile saata. Peame pakkuma workflow.xml fail, mis tuleks salvestada HDFS-i.

workflow.xml

Järgmisena peame looma workflow.xml fail, kus määratleme kõik oma toimingud ja viime need ellu. Esiteks peame määrama töövoo-rakenduse nime, st. WorkflowRunnerTest . Seejärel täpsustame algussõlm . Stardisõlm ( aastal alustama silt ) on töövoo töö lähtepunkt. See osutab esimese töövoo sõlme poole, kust töö peaks algama. Nagu näete alloleval pildil, on järgmine sõlm ristmik0 kust töö algab.

Järgmisena täpsustame toimingusõlmes täidetava ülesande. Siin täidame MapReduce WordCount ülesande. Peame määrama selle MapReduce ülesande täitmiseks vajalikud konfiguratsioonid. Määratleme tööjälgija ja NameNode'i aadressi.

Järgmine on enne toimingu tegemist ettevalmistatud element, mida kasutatakse eranditult kataloogide puhastamiseks. Siin teostame HDFS-is kustutamistoimingu välja 1. kaust, kui see on juba loodud. Ettevalmistusmärki kasutatakse kausta loomiseks või kustutamiseks enne töö käivitamist. Seejärel täpsustame MapReduce atribuute nagu tööjärjekorra nimi, kaardistaja klass, reduktori klass, väljundvõti klass ja väljundväärtuse klass.

MapReduce'i viimane ülesande konfiguratsioon on HDFS-i sisend- ja väljundkataloog. Sisendkataloog on andmed kataloog, mis on salvestatud NameNode'i juurteele . Lõpuks täpsustame tapmise elemendi, kui töö ebaõnnestub.

Nüüd peame liikuma WordCountTest HDFS-i kaust, nagu oleme selles täpsustanud oozie.wf.application.path kinnistu aastal töö.omadused faili. Nii et me kopeerime WordCountTest kaust Hadoopi juurkataloogis.

Käsk: hadoop fs -put WordCountTest /

Kontrollimiseks võite minna NameNode'i veebiliidesesse ja kontrollida, kas kaust on üles laaditud HDFS-i juurkataloogi või mitte.

Nüüd oleme kõik valmis liikuma edasi ja täitma töövoo töö.

Käsk: oozie töökoht - oozie http: // localhost: 11000 / oozie -config job.properties -run

Kui oleme oma töö täitnud, saame selle töö ID (st. 0000009-171219160449620-oozie-edur-W ), nagu on näidatud ülaltoodud pildil. Võite minna ja kontrollida Oozie veebi kasutajaliideses esitatud tööd, st. kohalik host: 11000 . Alloleval pildil näete, et meie esitatud töö on loetletud allpool.

Kui jälgite ülaltoodud pildil, näete töö ID-d, töö nime, töö olekut, töö esitanud kasutajat, loomise aega, algust ja viimast muudatust. Lisateabe saamiseks võite klõpsata tööl:

  • Töökoha teave

  • Töö määratlus

  • Töö seadistamine

Kuna töö olek on õnnestunud, peame minema HDFS-i juurkataloogi ja kontrollima, kas väljundkataloog on loodud või mitte.

Nagu näete, et oozieout HDFS-is on loodud kataloog, seega vaatame nüüd loodud väljundfaili.

Kuna oleme näinud, kuidas luua Oozie töövoo tööd, jõuame nüüd selles Apache Oozie juhendaja blogis edasi ja mõistame, kuidas luua koordinaatori tööd.

Apache Oozie õpetus: ajapõhine sõnade loendamise koordinaatori töö

Selles näites loome ajapõhise sõnade loendamise koordinaatori töö, mis käivitatakse pärast teatud ajaintervalli. Apache Oozie abil saate luua ja ajastada töö, mis tuleb täita iga päev või perioodiliselt.

Olgem selles Apache Oozie õpetuses kiiresti edasi ja looge koordinaatori töö. Siin loome kolm faili, st. koordinaator.omadused , koordinaator.xml & workflow.xml faili. Jällegi, siin asetame w ordcount purk sees lib kataloog, nagu on näidatud alloleval pildil.

Vaatame nüüd neid faile eraldi. Kõigepealt alustame failist koordinaator.properties.

Siin täpsustame töövoo käivitamise sagedust. Sagedust väljendatakse alati minutites. Meie puhul täidetakse seda koordinaatori tööd üks kord tunnis määratud aja vahel. Sagedust kasutatakse perioodiliste intervallide hõivamiseks, mille jooksul andmekogumid koostatakse, ja koordinaatorrakenduste plaanitud töötama.

Sageduse määramiseks minutites, tundides, päevades ja kuudes kasutage järgmist vormingut:

$ {coord: minutit (int n)} n $ {koordin: minutid (45)} -> 45
$ {coord: tundi (int n)} n * 60 $ {coord: tundi (3)} -> 180
$ {coord: päeva (int n)} muutuv $ {coord: päeva (2)} -> minutit 2 täispika päeva jooksul alates praegusest kuupäevast
$ {coord: kuud (int n)} muutuv $ {coord: kuud (1)} -> minutit ühe täiskuu jooksul alates praegusest kuupäevast

Järgmisena määratleme töö algus- ja lõppaja, nagu on näidatud ülaltoodud pildil. algusaeg on töö alguskuupäev & lõpuaeg on töö lõppkuupäev.

Järgmisena täpsustame URL-i NameNode & ResourceManager, mida kasutatakse HDFS-is faili workflow.xml suunamiseks ja tööde esitamiseks vastavalt YARN-i. Lõpuks täpsustame tee workflow.xml, mille salvestame HDFS-i. Samuti täpsustame rakenduse tee, kuhu kõik failid ja kataloog lib salvestatakse.

mis on javas suhe

Teine fail on koordinaator.xml kus me kasutame kõiki atribuutides määratud omadusi koordinaator.omadused faili. Nüüd määrame kõigepealt koordinaatorrakenduse omadused, st nime, sageduse ja ajavööndi. Järgmisena täpsustame töövood ükshaaval. Siin on meil ainult üks töövoog. Niisiis loome tegevuselemendi sees töövoo elemendi, kus määrame rakenduse tee.

Edasi, edasi liikudes peame looma workflow.xml fail, kus täpsustame ülesande. See sarnaneb workflow.xml faili, mille oleme loonud töövoo töös.

Nüüd jälle liigutame seda WordCountTest_TimedBased kataloog HDFS-i.

Käsk : hadoop fs -put WordCountTest_TimeBased /

Nüüd oleme kõik valmis selles Oozie õpetuses selle koordinaatori töö ära tegema ja täitma. Lähme edasi ja täidame selle.

Käsk : oozie töökoht - oozie http: // localhost: 11000 / oozie -config coordinator.properties -run

Märkige see koordinaatori töö ID (st 0000010-171219160449620-oozie-edur-C). See aitab teil oma tööd Oozie veebiliideses üles leida.

Töö näete Oozie veebiliidese vahekaardil Koordinaatori töökohad. Sarnaselt töövoo tööle on meil ka nimi, olek, kasutaja, sagedus, töö algus- ja lõppaeg. Kui klõpsate kindlal töökohal, näete töö üksikasju, nagu on näidatud allpool olevatel piltidel.

  • Koordinaatori töökoha teave

  • Koordinaatori töö määratlus

  • Koordinaatori töö seadistamine

Nüüd, kui oleme erinevad vahelehed läbi vaadanud. Me läheme tagasi HDFS-i juurkataloogi, kus luuakse väljundkaust. Nagu näete alloleval pildil, oozieTimeBasedout kataloog on loodud, nagu me täpsustasime workflow.xml faili.

Vaatame nüüd loodud väljundfaili.

Loodetavasti leidsite selle Apache Oozie juhendaja ajaveebi informatiivseks. Kui soovite rohkem teada saada, võite selle läbi teha mis räägib teile suurandmetest ja sellest, kuidas Hadoop suurandmetega seotud väljakutseid lahendab.

Nüüd, kui olete Apache Oozie'st aru saanud, vaadake järgmist Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Big Data Hadoopi sertifitseerimiskoolitus aitab õppijatel saada HDFS, lõnga, MapReduce, Pig, Hive, HBase, Oozie, Flume ja Sqoop ekspertideks, kasutades reaalajas kasutatavaid juhtumeid jaekaubanduse, sotsiaalmeedia, lennunduse, turismi ja rahanduse valdkonnas.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.