Oozie-opetusohjelma: Opi kuinka suunnitella Hadoop-työt

Apache Oozie -opetusohjelma: Oozie on työnkulun ajoitusjärjestelmä Hadoop-töiden hallitsemiseksi. Se on skaalautuva, luotettava ja laajennettava järjestelmä.

Ennen kuin aloitat tämän Apache Oozie -opetusohjelman, anna meidän ymmärtää, missä ajoitusjärjestelmää käytetään. Reaaliaikaisissa tilanteissa yksi työ riippuu muista töistä, kuten MapReduce-tehtävän tulos voidaan siirtää Hive-työhön jatkokäsittelyä varten. Seuraava skenaario voi olla tehtäväryhmän ajoitus ajan perusteella, kuten päivittäin, viikoittain, kuukausittain tai tietojen saatavuuden perusteella. Apache Oozie tarjoaa sinulle voiman käsitellä tällaisia ​​tilanteita helposti. Siksi Apache Oozie on tärkeä osa .

Tässä Apache Oozie -opetusblogissa käsittelemme:



  • Apache Oozie Johdanto
  • Oozie-työnkulku
  • Oozie-koordinaattori
  • Oozie Bundle
  • Sanamäärän työnkulun työ
  • Aikaperusteinen sanamäärän koordinaattorin työ

Aloitamme tämän Oozie-opetusohjelman esittelemällä Apache Oozien. Sitten eteenpäin ymmärrämme sellaisten työpaikkojen tyypit, jotka voidaan luoda ja toteuttaa Apache Oozien avulla.

Apache Oozie -opetusohjelma: Johdatus Apache Oozie -ohjelmaan

Apache Oozie - Oozie-opetusohjelma - EdurekaApache Oozie on ajoitusjärjestelmä Hadoop-töiden hallitsemiseksi ja suorittamiseksi hajautetussa ympäristössä. Voimme luoda halutun putkilinjan yhdistämällä erilaisia ​​tehtäviä. Se voi olla Hive-, Pig-, Sqoop- tai MapReduce-tehtäväsi. Apache Oozien avulla voit myös ajoittaa työpaikkasi. Tehtäväsarjassa voidaan myös ohjelmoida kaksi tai useampia töitä toimimaan rinnakkain toistensa kanssa. Se on skaalautuva, luotettava ja laajennettava järjestelmä.

Oozie on avoimen lähdekoodin Java-verkkosovellus, joka vastaa työnkulkutoimintojen käynnistämisestä. Se puolestaan ​​käyttää Hadoop-suoritusmoottoria tehtävien suorittamiseen.

Apache Oozie havaitsee tehtävien suorittamisen soittopyynnön ja kyselyn avulla. Kun Oozie käynnistää tehtävän, se antaa tehtävälle yksilöllisen takaisinsoiton HTTP-URL-osoitteen ja ilmoittaa kyseiselle URL-osoitteelle, kun tehtävä on valmis. Jos tehtävä ei onnistu kutsumaan takaisinsoitto-URL-osoitetta, Oozie voi kysyä tehtävän loppuun saattamista varten.

Apache Ooziessa on kolmenlaisia ​​työpaikkoja:

luoda singleton-luokan java
  • Oozie-työnkulun työpaikat & miinus Nämä ovat suunnattuja asyklisiä kuvaajia (DAG), jotka määrittelevät suoritettavien toimintojen sarjan.
  • Oozie-koordinaattorin työpaikat & miinus Nämä koostuvat työn ja työn saatavuuden aiheuttamista työnkulun töistä.
  • Oozie-paketit & miinus Näitä voidaan kutsua useiden koordinaattoreiden ja työnkulun töiden paketiksi.

Ymmärretään nyt kaikki nämä työpaikat yksitellen.

Apache Oozie -opetusohjelma: Oozie-työnkulku

Työnkulku on sarja suoria asyklisiä kaavioita (DAG). Toiminnot ovat riippuvaisia ​​toisistaan, koska seuraava toiminto voidaan suorittaa vasta nykyisen toiminnan tulosten jälkeen. Työnkulun toiminto voi olla Pig-toiminto, Hive-toiminto, MapReduce-toiminto, Shell-toiminta, Java-toiminto jne. Voi olla päätöspuita, jotka päättävät, miten ja millä ehdolla työ suoritetaan.

Voimme luoda erityyppisiä toimintoja työn perusteella, ja jokaisella toimintotyypillä voi olla omat taginsa.Työnkulku ja komentosarjat tai purkit on sijoitettava HDFS-polkuun ennen työnkulun suorittamista.

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

Voit tarkistaa työn tilan siirtymällä Oozie-verkkokonsoliin, ts. http: // isäntänimi: 11000 . Napsauttamalla työtä näet työn tilan.

Skenaarioissa, joissa haluamme suorittaa useita töitä samanaikaisesti, voimme käyttää Haarukka . Aina kun käytämme haarukkaa, meidän on käytettävä Liityä haarukkana päätysolmuna. Jokaiselle haarukalle tulisi olla liitos. Join olettaa, että kaikki rinnakkain toimivat solmut ovat yhden haarukan lapsi. Esimerkiksi voimme luoda kaksi taulukkoa samanaikaisesti.

Jos haluamme suorittaa toiminnon päätöksen tulosten perusteella, voimme lisätä päätöksentunnisteita. Esimerkiksi, jos meillä on jo pesätaulukko, sitä ei tarvitse luoda uudelleen. Tässä tilanteessa voimme lisätä päätöksentunnisteen olla suorittamatta taulukon luomisvaiheita, jos taulukko on jo olemassa. Päätössolmuissa on kytkentätagi, joka on samanlainen kuin kytkentätapa.

Työnseurannan, nimisolmun, komentosarjan ja parametrin arvo voidaan välittää suoraan. Mutta tätä on vaikea hallita. Tässä on konfiguraatiotiedosto (eli .ominaisuustiedosto) kätevä.

Apache Oozie -opetusohjelma: Oozie-koordinaattori

Koordinaattorin avulla voit ajoittaa monimutkaiset työnkulut sekä säännöllisesti ajoitetut työnkulut. Oozie-koordinaattorit käynnistävät työnkulun työt ajan, datan tai tapahtuman predikaattien perusteella. Työnkuljetukset työn koordinaattorin sisällä alkavat, kun annettu ehto täyttyy.

Koordinaattorin tehtävissä vaaditaan seuraavat määritelmät:

  • alkaa & miinus Työn aloituspäivä.
  • loppuun & miinus työn päättymispäivä.
  • aikavyöhyke & miinus koordinaattorisovelluksen aikavyöhyke.
  • taajuus & miinus Työn suorittamisen taajuus minuutteina.

Joitakin muita ominaisuuksia on saatavana ohjaustiedoille:

  • Aikalisä & miinus Suurin aika minuutteina, jonka toiminta odottaa lisäehtojen täyttämistä ennen hävittämistä. 0 tarkoittaa, että jos kaikki syötetapahtumat eivät ole tyydyttäviä toiminnan toteutumisajankohtana, toiminnan pitäisi aikakatkaistua välittömästi. -1 tarkoittaa, ettei aikakatkaisua ole, toiminto odottaa ikuisesti. Oletusarvo on -1.
  • samanaikaisuus & miinus Samanaikaisesti suoritettavan työn enimmäismäärä. Oletusarvo on 1.
  • toteuttaminen - Se määrittelee suoritusmääräyksen, jos useat koordinaattorityön esiintymät ovat täyttäneet suorituskriteerinsä. Se voi olla:
    • FIFO (oletus)
    • LIFO
    • LAST_ONLY

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

Jos määritelmässä käytettyä määritysominaisuutta ei toimiteta työn määrityksessä koordinaattorityötä lähetettäessä, työn lähettäminen epäonnistuu.

Apache Oozie -opetusohjelma: Oozie Bundle

Oozie Bundle -järjestelmävoit määrittää ja suorittaa joukon koordinaattorisovelluksia, joita kutsutaan usein dataputkeksi. Oozie-nipussa koordinaattorisovellusten välillä ei ole nimenomaista riippuvuutta. Voit kuitenkin käyttää koordinaattorisovellusten datariippuvuutta implisiittisen tietosovelluksen luomiseen.Voit aloittaa / lopettaa / keskeyttää / jatkaa / suorittaa paketin uudelleen. Se antaa paremman ja helpon käytön hallinnan.

Aloitusaika & miinus Aika, jolloin paketin pitäisi alkaa ja lähettää koordinaattorihakemukset.

Tässä Apache Oozie -oppaassa etenemme, miten luodaan työnkulun työ.

Apache Oozie -opetusohjelma: Sanamäärän työnkulun työ

Tässä esimerkissä aiomme suorittaa sanamäärän työn Apache Oozien avulla. Täällä emme keskustele siitä, kuinka kirjoittaa MapReduce-sanamääräohjelma. Joten ennen tämän Apache Oozie -opetusohjelman seuraamista sinun on ladattava tämä sanamäärä purkki tiedosto. Luo nyt WordCountTest-hakemisto, johon sijoitamme kaikki tiedostot. Luo lib-hakemisto, johon sijoitamme sanamäärän purkki alla olevien kuvien mukaisesti.

Nyt voit siirtyä eteenpäin ja luoda työ. ominaisuudet & workflow.xml tiedostot, joissa määritetään työ ja siihen liittyvät parametrit.

työ. ominaisuudet

Ensinnäkin olemme luomassa työ. ominaisuudet tiedosto, jossa määritämme NameNode & ResourceManager -polun. NameNode-polku vaaditaan työnkulun hakemistopolun ratkaisemiseksi. JobTracker-polku auttaa lähettämään työn langalle. Meidän on tarjottava workflow.xml tiedosto, joka tulisi tallentaa HDFS: ään.

workflow.xml

Seuraavaksi meidän on luotava workflow.xml tiedosto, jossa määritämme kaikki toimintamme ja suoritamme ne. Ensin meidän on määritettävä työnkulun sovelluksen nimi, ts. WorkflowRunnerTest . Sitten määritämme aloitussolmu . Aloitussolmu ( sisään alkaa tag ) on työnkulun työn lähtökohta. Se osoittaa kohti ensimmäistä työnkulun solmua, josta työn pitäisi alkaa. Kuten alla olevasta kuvasta näet, seuraava solmu on risteys0 mistä työ alkaa.

Seuraavaksi määritämme suoritettavan tehtävän toimintosolmussa. Suoritamme MapReduce WordCount -tehtävän täällä. Meidän on määritettävä kokoonpanot, joita tarvitaan tämän MapReduce-tehtävän suorittamiseen. Määritämme työn seurannan ja NameNode-osoitteen.

Seuraava on valmistettu elementti, jota käytetään yksinomaan hakemiston siivoamiseen, ennen toiminnon suorittamista. Täällä suoritamme HDFS: n poistotoiminnon ulos 1 kansio, jos se on jo luotu. Valmistelutunnistetta käytetään kansion luomiseen tai poistamiseen ennen työn suorittamista. Sitten määritämme MapReduce-ominaisuuksia, kuten työjonon nimi, mapper-luokka, vähennysluokka, lähtöavaimen luokka ja lähtöarvoluokka.

mikä on koneoppimisen ylikuormitusta

Viimeinen MapReduce-tehtäväkokoonpano on HDFS: n tulo- ja lähtöhakemisto. Syötetty hakemisto on tiedot hakemisto, joka on tallennettu NameNode-juuripolkuun . Viimeinkin määritämme kill-elementin, jos työ epäonnistuu.

Nyt meidän on siirrettävä WordCountTest HDFS-kansio, kuten olemme määrittäneet oozie.wf.application.path kiinteistö työ. ominaisuudet tiedosto. Joten kopioimme WordCountTest kansio Hadoop-juurihakemistossa.

Komento: hadoop fs -put WordCountTest /

Vahvistaaksesi, voit mennä NameNode-Web-käyttöliittymään ja tarkistaa, onko kansio ladattu HDFS-juurihakemistoon vai ei.

Nyt olemme kaikki valmiita siirtymään eteenpäin ja suorittamaan työnkulun.

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

Kun olemme suorittaneet työn, saamme työn tunnuksen (eli 0000009-171219160449620-oozie-edur-W ) kuten yllä olevassa kuvassa näkyy. Voit mennä tarkistamaan lähettämäsi työn Oozie Web -käyttöliittymässä, ts. paikallinen isäntä: 11000 . Alla olevasta kuvasta näet lähettämäsi työn alla.

Jos huomaat yllä olevasta kuvasta, näet työn tunnuksen, työn nimen, työn tilan, työn lähettäneen käyttäjän, luomisen ajan, aloituksen ja viimeisen muokkauksen. Voit napsauttaa työtä saadaksesi lisätietoja, kuten:

  • Työn tiedot

  • Työn määrittely

  • Työn määritys

Kun työn tila on onnistunut, meidän on mentävä HDFS-juurihakemistoon ja tarkistettava, onko lähtöhakemisto luotu vai ei.

Kuten näette, että oozieout hakemisto on luotu HDFS: ään, joten katsotaan nyt luotua tulostetiedostoa.

Kuten olemme nähneet, miten Oozie-työnkulun työ luodaan, edistymme nyt tässä Apache Oozie -opetusblogissa ja ymmärrämme kuinka luoda koordinaattorityö.

Apache Oozie -opetusohjelma: Aikaperusteinen sanamäärän koordinaattorin työ

Tässä esimerkissä luomme aikaperusteisen sanamäärän koordinaattorityön, joka suoritetaan tietyn aikavälin jälkeen. Voit luoda ja ajoittaa työn Apache Oozie -työkalulla, joka on suoritettava päivittäin tai säännöllisesti.

Anna meidän edetä nopeasti tässä Apache Oozie -oppaassa ja luoda koordinaattorityö. Täällä luomme kolme tiedostoa, ts. koordinaattori. ominaisuudet , coordinator.xml & workflow.xml tiedosto. Jälleen tässä asetamme w ordcount purkki sisällä lib hakemiston alla olevan kuvan mukaisesti.

Katsotaan nyt näitä tiedostoja erikseen. Ensinnäkin aloitamme koordinator.properties-tiedostosta.

Tässä määritetään taajuus, jolla työnkulku suoritetaan. Taajuus ilmaistaan ​​aina minuutteina. Meidän tapauksessamme tämä koordinaattorityö suoritetaan kerran tunnissa määritetyn ajan välillä. Taajuutta käytetään kaappaamaan jaksoittaiset aikavälit, joilla datajoukot tuotetaan, ja koordinaattorisovellusten ajoitetaan toimivan.

Määritä taajuus minuutteina, tunteina, päivinä ja kuukausina seuraavalla tavalla:

$ {koordinaatti: minuuttia (int n)} n $ {koordinaatti: minuuttia (45)} -> 45
$ {coord: tuntia (int n)} n * 60 $ {coord: tuntia (3)} -> 180
$ {coord: päivää (int n)} muuttuja $ {coord: päivää (2)} -> minuuttia kahdessa päivässä nykyisestä päivämäärästä
$ {coord: kuukautta (int n)} muuttuja $ {coord: months (1)} -> minuuttia yhden kuukauden aikana nykyisestä päivämäärästä

Seuraavaksi määritämme työn aloitus- ja lopetusajan yllä olevan kuvan mukaisesti. aloitusaika on työn aloituspäivä & loppu aika on työn lopetuspäivä.

Seuraavaksi määritämme NameNode & ResourceManager-URL-osoitteen, jota käytetään viittaamaan workflow.xml-tiedostoon HDFS: ssä ja lähettämään töitä YARN: lle. Viimeinkin määritämme workflow.xml-polun, jonka tallennamme HDFS: ään. Määritämme myös sovelluspolun, johon kaikki tiedostot ja lib-hakemisto tallennetaan.

Toinen tiedosto on coordinator.xml missä käytämme kaikkia ominaisuuksia, jotka olemme määrittäneet koordinaattori. ominaisuudet tiedosto. Nyt ensin määritetään koordinaattorisovelluksen ominaisuudet, kuten nimi, taajuus ja aikavyöhyke. Seuraavaksi määritämme työnkulut yksitellen. Tässä meillä on vain yksi työnkulku. Joten toimintoelementin sisällä luomme työnkulun elementin, jossa määritämme sovelluspolun.

Seuraavaksi meidän on luotava eteenpäin workflow.xml tiedosto, jossa määritämme tehtävän. Se on samanlainen kuin workflow.xml tiedosto, jonka olemme luoneet työnkulkutyössä.

mihin nukkeja käytetään

Nyt taas kerran siirrämme tämän WordCountTest_TimedBased hakemistosta HDFS: ään.

Komento : hadoop fs -put WordCountTest_TimeBased /

Nyt olemme kaikki valmiita siirtymään eteenpäin ja suorittamaan tämän koordinaattorityön tässä Oozie-oppaassa. Mennään eteenpäin ja toteutetaan se.

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

Merkitse muistiin tämä koordinaattorin työn tunnus (ts. 0000010-171219160449620-oozie-edur-C). Se auttaa sinua jäljittämään työsi Oozie Web UI: ssä.

Voit nähdä työn luettelossa Oozie Web -käyttöliittymän Koordinaattorin työt -välilehdessä. Työnkulun työn tapaan meillä on työn nimi, tila, käyttäjä, taajuus, työn aloitus- ja lopetusaika. Kun napsautat tiettyä työtä, näet työn yksityiskohdat, kuten alla olevissa kuvissa näkyy.

  • Koordinaattorin työpaikkatiedot

  • Koordinaattorin työn määritelmä

  • Koordinaattorin työn määritys

Nyt, kun olemme tarkastelleet eri välilehtiä. Palataan takaisin HDFS-juurihakemistoon, johon lähtökansio luodaan. Kuten alla olevasta kuvasta näet, oozieTimeBasedout hakemisto on luotu, kuten määritimme workflow.xml tiedosto.

Katsokaamme nyt luotua tulostetiedostoa.

Toivottavasti löysit tämän Apache Oozie Tutorial -blogin informatiiviseksi. Jos olet kiinnostunut oppimaan lisää, voit käydä tämän läpi joka kertoo sinulle Big Dataista ja siitä, kuinka Hadoop ratkaisee Big Dataan liittyviä haasteita.

Nyt kun olet ymmärtänyt Apache Oozien, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka Big Data Hadoop -sertifiointikoulutus auttaa oppijoita tulemaan HDFS-, Lanka-, MapReduce-, Pig-, Hive-, HBase-, Oozie-, Flume- ja Sqoop-asiantuntijoiksi reaaliaikaisten käyttötapausten avulla vähittäiskaupan, sosiaalisen median, ilmailun, matkailun ja rahoituksen toimialueilla.

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun.