Výukový program Oozie: Naučte sa, ako naplánovať svoje úlohy Hadoop



Výukový program Apache Oozie: Oozie je systém plánovania pracovných postupov na správu úloh Hadoop. Je to škálovateľný, spoľahlivý a rozšíriteľný systém.

Pred začatím tohto tutoriálu Apache Oozie si uvedomte, kde sa používa plánovací systém. V scenároch v reálnom čase je jedna úloha závislá od iných úloh, napríklad výstup úlohy MapReduce môže byť odovzdaný úlohe Hive na ďalšie spracovanie. Ďalším scenárom môže byť naplánovanie súboru úloh na základe času, napríklad denného, ​​týždenného, ​​mesačného alebo na základe dostupnosti údajov. Apache Oozie vám poskytuje silu na ľahké zvládnutie týchto druhov scenárov. Preto je Apache Oozie dôležitou súčasťou .

V tomto výučbovom blogu Apache Oozie sa budeme venovať:





  • Apache Oozie Úvod
  • Pracovný tok Oozie
  • Koordinátor Oozie
  • Balík Oozie
  • Počet pracovných úloh v počte slov
  • Úloha koordinátora počítania slov podľa času

Tento tutoriál Oozie začneme predstavením Apache Oozie. Potom budeme chápať typy úloh, ktoré je možné vytvárať a vykonávať pomocou Apache Oozie.

Výukový program Apache Oozie: Úvod do Apache Oozie

Apache Oozie - Výukový program Oozie - EdurekaApache Oozie je plánovací systém na správu a vykonávanie úloh Hadoop v distribuovanom prostredí. Kombináciou rôznych druhov úloh môžeme vytvoriť požadovaný kanál. Môže to byť vaša úloha Hive, Pig, Sqoop alebo MapReduce. Pomocou Apache Oozie môžete tiež plánovať svoje úlohy. V rámci sekvencie úlohy možno naprogramovať aj dve alebo viac úloh tak, aby bežali paralelne navzájom. Je to škálovateľný, spoľahlivý a rozšíriteľný systém.



Oozie je webová aplikácia Java s otvoreným zdrojovým kódom, ktorá je zodpovedná za spúšťanie akcií pracovného toku. Na druhej strane na vykonávanie úloh používa vykonávací modul Hadoop.

Apache Oozie detekuje dokončenie úloh prostredníctvom spätného volania a hlasovania. Keď Oozie spustí úlohu, poskytne úlohe jedinečné HTTP URL spätného volania a po dokončení úlohy ju oznámi. Ak sa nepodarí vyvolať adresu URL spätného volania, môže Oozie dopyt dokončiť.

V Apache Oozie existujú tri typy pracovných pozícií:



  • Úlohy pracovného toku Oozie & mínus Toto sú priame acyklické grafy (DAG), ktoré špecifikujú postupnosť akcií, ktoré sa majú vykonať.
  • Pracovné miesta koordinátora Oozie & mínus Pozostávajú z úloh pracovného toku vyvolaných časom a dostupnosťou údajov.
  • Balíky Oozie & minus Môžu sa označovať ako balík viacerých koordinátorov a úloh pracovného toku.

Teraz si poďme porozumieť postupne všetky tieto úlohy.

Výukový program Apache Oozie: Pracovný tok Oozie

Pracovný tok je sled akcií usporiadaných do priameho acyklického grafu (DAG). Akcie sú navzájom závislé, pretože nasledujúcu akciu je možné vykonať až po výstupe aktuálnej akcie. Akciou pracovného toku môže byť akcia Pig, akcia Hive, akcia MapReduce, akcia Shell, akcia Java atď. Môžu existovať rozhodovacie stromy, ktoré rozhodujú o tom, ako a za akých podmienok by sa mala úloha spustiť.

Na základe úlohy môžeme vytvoriť rôzne typy akcií a každý typ akcie môže mať svoj vlastný typ značiek.Pracovný tok a skripty alebo poháre by mali byť umiestnené na cestu HDFS pred vykonaním pracovného toku.

Príkaz: oozie job –oozie http: // localhost: 11000 / oozie -config job.properties -run

Na kontrolu stavu úlohy môžete prejsť do webovej konzoly Oozie, t.j. http: // názov_hostiteľa: 11000 . Kliknutím na pracovnú pozíciu sa zobrazí jej stav.

V scenároch, kde chceme paralelne spustiť viac úloh, môžeme použiť Vidlička . Kedykoľvek použijeme vidličku, musíme použiť Pripojiť sa ako koncový uzol vidlice. Pre každú vidličku by mal byť spoj. Pripojenie predpokladá, že všetky uzly vykonávajúce paralelne sú potomkami jednej vidlice. Môžeme napríklad paralelne vytvoriť dve tabuľky.

Ak chceme vykonať akciu na základe výstupu rozhodnutia, môžeme pridať rozhodovacie značky. Napríklad, ak už máme tabuľku podregistrov, nebudeme ju musieť znovu vytvárať. V tejto situácii môžeme pridať rozhodovaciu značku, ktorá nespustí kroky vytvorenia tabuľky, ak tabuľka už existuje. Rozhodovacie uzly majú prepínaciu značku podobnú prepínacej veľkosti.

Hodnotu sledovača úloh, názvu uzla, skriptu a parametra je možné odovzdať priamo. Je však ťažké to zvládnuť. Tu sa hodí konfiguračný súbor (t. J. Súbor vlastností).

Výukový program Apache Oozie: Koordinátor Oozie

Pomocou aplikácie Coordinator môžete naplánovať zložité pracovné toky aj pracovné toky, ktoré sú pravidelne plánované. Koordinátor Oozie spúšťa úlohy pracovných tokov na základe predikátov času, údajov alebo udalostí. Pracovné toky vo vnútri koordinátora úloh sa začnú, keď je daná podmienka splnená.

Definície požadované pre úlohy koordinátora sú:

  • začať & mínus Spustiť dátum a čas úlohy.
  • koniec & mínus Ukončiť dátum a čas úlohy.
  • časové pásmo & mínus časové pásmo aplikácie koordinátora.
  • frekvencia & mínus Frekvencia vykonávania úloh v minútach.

Pre informáciu o ovládaní sú k dispozícii niektoré ďalšie vlastnosti:

  • čas vypršal & minus Maximálny čas v minútach, po ktorý bude akcia čakať na splnenie ďalších podmienok, než bude zahodená. 0 označuje, že ak v čase uskutočnenia akcie nie sú splnené všetky vstupné udalosti, mala by akcia okamžite vypršať. -1 označuje žiadny časový limit, akcia bude čakať večne. Predvolená hodnota je -1.
  • súbežnosť & minus Maximálny počet akcií pre úlohu, ktorá môže prebiehať paralelne. Predvolená hodnota je 1.
  • exekúcia - Určuje príkaz na vykonanie, ak viaceré inštancie úlohy koordinátora splnili svoje kritériá vykonania. To môže byť:
    • FIFO (predvolené)
    • LIFO
    • POSLEDNE_LEN

Príkaz: oozie job –oozie http: // localhost: 11000 / oozie -config -run

Ak pri zadávaní úlohy koordinátora nie je s konfiguráciou úlohy poskytnutá konfiguračná vlastnosť použitá v definícii, odoslanie úlohy zlyhá.

Výukový program Apache Oozie: Balík Oozie

Systém balíkov Oozieumožňuje definovať a vykonávať množinu aplikácií koordinátora, ktoré sa často nazývajú dátový kanál. V balíku Oozie neexistuje výslovná závislosť medzi aplikáciami koordinátora. Závislosť údajov aplikácií koordinátora však môžete použiť na vytvorenie kanálu implicitných dátových aplikácií.Balík môžete spustiť / zastaviť / pozastaviť / obnoviť / znova spustiť. Poskytuje lepšie a jednoduchšie prevádzkové riadenie.

Kick-off-time & minus Čas, kedy by sa balík mal spustiť a odoslať žiadosti koordinátora.

Postupom v tomto výučbe Apache Oozie pochopíme, ako vytvoriť úlohu pracovného toku.

Výukový program Apache Oozie: Job Workflow Job

V tomto príklade vykonáme úlohu počítania slov pomocou Apache Oozie. Tu nebudeme diskutovať o tom, ako napísať program počítania slov MapReduce. Pred vykonaním tohto tutoriálu Apache Oozie si ho musíte stiahnuť počet slov jar spis. Teraz vytvorte adresár WordCountTest, do ktorého umiestnime všetky súbory. Vytvorte adresár lib, do ktorého umiestnime nádobu na počítanie slov, ako je znázornené na obrázkoch nižšie.

Teraz poďme napredovať a tvoriť job.properties & workflow.xml súbory, kde upresníme úlohu a parametre s ňou spojené.

job.properties

Najskôr vytvárame a job.properties súbor, kde definujeme cestu NameNode & ResourceManager. Cesta NameNode je potrebná na vyriešenie cesty k adresáru pracovného toku a cesta JobTracker pomôže pri odoslaní úlohy do PRIADZE. Musíme poskytnúť cestu k workflow.xml súbor, ktorý by mal byť uložený v HDFS.

aký je rozdiel medzi triedou a rozhraním

workflow.xml

Ďalej musíme vytvoriť workflow.xml súbor, kde budeme definovať všetky naše akcie a vykonávať ich. Najskôr musíme určiť názov aplikácie pracovného toku, t. WorkflowRunnerTest . Potom špecifikujeme štartovací uzol . Štartovací uzol ( v the začať značka ) je vstupný bod pre úlohu pracovného toku. Ukazuje na prvý uzol pracovného toku, od ktorého by sa mala úloha začať. Ako vidíte na obrázku nižšie, ďalší uzol je križovatka0 odkiaľ začne práca.

Ďalej zadávame úlohu, ktorá sa má vykonať, v uzle akcie. Tu vykonávame úlohu MapReduce WordCount. Musíme určiť konfigurácie potrebné na vykonanie tejto úlohy MapReduce. Definujeme sledovač úloh a adresu NameNode.

Ďalej je pripravený prvok, ktorý sa používa výlučne na vyčistenie adresára pred vykonaním akcie. Tu vykonávame operáciu odstránenia v HDFS na odstránenie out1 priečinok, ak je už vytvorený. Značka Prepare sa používa na vytvorenie alebo odstránenie priečinka pred vykonaním úlohy. Potom špecifikujeme vlastnosti MapReduce, ako napríklad názov frontu úloh, trieda mapovača, trieda reduktorov, trieda výstupných kľúčov a trieda výstupných hodnôt.

Posledná konfigurácia úlohy MapReduce je vstupný a výstupný adresár v HDFS. Vstupný adresár je údaje adresár, ktorý je uložený v koreňovej ceste NameNode . Nakoniec zadáme prvok kill, ak úloha zlyhá.

Teraz musíme presunúť WordCountTest priečinok v HDFS, ako sme špecifikovali v oozie.wf.application.path majetok v job.properties spis. Takže kopírujeme WordCountTest priečinok v koreňovom adresári Hadoop.

Príkaz: hadoop fs -put WordCountTest /

Ak chcete overiť, môžete ísť do webového používateľského rozhrania NameNode a skontrolovať, či bol priečinok nahraný do koreňového adresára HDFS alebo nie.

Teraz sme všetci pripravení pohnúť sa vpred a vykonať úlohu pracovného toku.

Príkaz: oozie job –oozie http: // localhost: 11000 / oozie -config job.properties -run

fuzzy logika v umelej inteligencii

Hneď ako vykonáme svoju prácu, dostaneme jej ID (t.j. 0000009-171219160449620-oozie-edur-W ), ako je znázornené na obrázku vyššie. Môžete ísť skontrolovať prácu, ktorú ste zadali, do webového používateľského rozhrania Oozie, t. localhost: 11000 . Na nasledujúcom obrázku môžete vidieť, že práca, ktorú sme odovzdali, je uvedená nižšie.

Ak to budete vidieť na obrázku vyššie, uvidíte ID úlohy, názov úlohy, stav úlohy, používateľa, ktorý úlohu odoslal, čas vytvorenia, začatia a poslednej úpravy. Kliknutím na úlohu získate ďalšie podrobnosti, napríklad:

  • Informácie o práci

  • Definícia práce

  • Konfigurácia úlohy

Pretože stav úlohy bol úspešný, musíme ísť do koreňového adresára HDFS a skontrolovať, či bol výstupný adresár vytvorený alebo nie.

Ako vidíte, že oozieout adresár bol vytvorený v HDFS, tak sa pozrime na vytvorený výstupný súbor.

Ako sme videli, ako vytvoriť úlohu pracovného toku Oozie, teraz postúpime v tomto blogu Apache Oozie Tutorial a pochopíme, ako vytvoriť úlohu koordinátora.

Výukový program Apache Oozie: Úloha koordinátora počtu slov podľa času

V tomto príklade budeme vytvárať časovo založenú úlohu koordinátora počtu slov, ktorá sa vykoná po konkrétnom časovom intervale. Môžete vytvoriť a naplánovať úlohu pomocou Apache Oozie, ktoré je potrebné vykonávať denne alebo pravidelne.

Poďme v tomto výučbe Apache Oozie rýchlo napredovať a vytvorme úlohu koordinátora. Tu budeme vytvárať tri súbory, t.j. koordinátor.vlastnosti , coordinator.xml & workflow.xml spis. Opäť tu umiestnime w ordcount nádoba vo vnútri lib adresár, ako je znázornené na obrázku nižšie.

Teraz sa pozrime na tieto súbory jednotlivo. Najskôr začneme súborom coordinator.properties.

Tu určujeme frekvenciu vykonávania pracovného toku. Frekvencia je vždy vyjadrená v minútach. V našom prípade sa táto úloha koordinátora vykoná raz za hodinu medzi stanoveným časom. Frekvencia sa používa na zachytenie periodických intervalov, v ktorých sa vytvárajú súbory údajov, a vykonávanie aplikácií koordinátorov je naplánované.

Na definovanie frekvencie v minútach, hodinách, dňoch a mesiacoch použite nasledujúci formát:

$ {coord: minutes (int n)} n $ {coord: minutes (45)} -> 45
$ {coord: hours (int n)} n * 60 $ {coord: hours (3)} -> 180
$ {coord: days (int n)} premenná $ {coord: days (2)} -> minúty za celé 2 dni od aktuálneho dátumu
$ {coord: months (int n)} premenná $ {coord: months (1)} -> minúty za 1 celý mesiac od aktuálneho dátumu

Ďalej definujeme čas začatia a ukončenia úlohy, ako je znázornené na obrázku vyššie. Doba spustenia je počiatočný dátum a čas pre prácu & endTime je konečný čas práce.

Ďalej zadávame adresu URL NameNode & ResourceManager, ktorá sa použije na sprostredkovanie súboru workflow.xml v HDFS a na odosielanie úloh do YARN. Nakoniec zadáme cestu workflow.xml, ktorú uložíme do HDFS. Ďalej zadáme cestu k aplikácii, kde budú uložené všetky adresáre súborov a lib.

Druhý súbor je coordinator.xml kde použijeme všetky vlastnosti, ktoré sme zadali v koordinátor.vlastnosti spis. Teraz najskôr určíme vlastnosti aplikácie koordinátora, tj. Názov, frekvenciu a časové pásmo. Ďalej určíme pracovné postupy jeden po druhom. Tu máme iba jeden pracovný tok. Vo vnútri prvku akcie teda vytvoríme prvok pracovného toku, kde zadáme cestu aplikácie.

Ďalej musíme postupovať vpred workflow.xml súbor, kde zadáme úlohu. Je to podobné ako v prípade workflow.xml súbor, ktorý sme vytvorili v úlohe pracovného toku.

Teraz to opäť posunieme WordCountTest_TimedBased adresár na HDFS.

Velenie : hadoop fs -put WordCountTest_TimeBased /

Teraz sme všetci pripravení pohnúť sa vpred a vykonať túto úlohu koordinátora v tomto výučnom programe Oozie. Poďme do toho a vykonajme to.

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

dynamické prideľovanie pamäte v c ++ s ukážkovým programom

Poznačte si toto ID úlohy koordinátora (t. J. 0000010-171219160449620-oozie-edur-C). Pomôže vám to vystopovať si prácu vo webovom používateľskom rozhraní Oozie.

Úlohu môžete vidieť dole na karte Úlohy koordinátora vo webovom používateľskom rozhraní Oozie. Podobne ako v prípade úlohy Workflow máme názov, stav, používateľa, frekvenciu, čas začiatku a konca úlohy. Keď kliknete na konkrétnu prácu, uvidíte podrobnosti úlohy, ako sú zobrazené na obrázkoch nižšie.

  • Informácie o práci koordinátora

  • Definícia úlohy koordinátora

  • Konfigurácia úlohy koordinátora

Teraz, ako sme sa pozreli na rôzne karty. Vrátime sa späť do koreňového adresára HDFS, kde sa vytvorí výstupný priečinok. Ako vidíte na obrázku nižšie, oozieTimeBasedout adresár bol vytvorený, ako sme špecifikovali v workflow.xml spis.

Poďme sa teraz pozrieť na výstupný súbor, ktorý bol vytvorený.

Dúfam, že tento blog Apache Oozie Tutorial bol pre vás informačný. Ak sa chcete dozvedieť viac, môžete si to prečítať ktorá vám hovorí o veľkých dátach a o tom, ako spoločnosť Hadoop rieši výzvy spojené s veľkými dátami.

Teraz, keď ste pochopili Apache Oozie, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Kurz certifikácie Edadoka Big Data Hadoop Certification Training pomáha študentom stať sa odborníkmi v oblasti HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume a Sqoop pomocou prípadov použitia v reálnom čase v oblasti maloobchodu, sociálnych médií, letectva, cestovného ruchu, financií.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.