Výukový program Oozie: Naučte se, jak naplánovat úlohy Hadoop



Výukový program Apache Oozie: Oozie je systém plánovače pracovních postupů pro správu úloh Hadoop. Jedná se o škálovatelný, spolehlivý a rozšiřitelný systém.

Před spuštěním tohoto výukového programu Apache Oozie si ujasněte, kde se používá plánovací systém. V scénářích v reálném čase je jedna úloha závislá na jiných úlohách, například výstup úlohy MapReduce může být předán úloze Hive pro další zpracování. Dalším scénářem může být naplánování sady úkolů na základě času, jako je denní, týdenní, měsíční nebo na základě dostupnosti dat. Apache Oozie vám poskytuje sílu pro snadné zvládnutí těchto druhů scénářů. Proto je Apache Oozie důležitou součástí .

V tomto výukovém blogu Apache Oozie se budeme věnovat:





  • Apache Oozie Úvod
  • Pracovní postup Oozie
  • Oozie koordinátor
  • Balíček Oozie
  • Pracovní postup počtu slov
  • Úloha koordinátora počítání slov podle času

Tento tutoriál Oozie začneme zavedením Apache Oozie. Poté budeme rozumět typům úloh, které lze vytvořit a provést pomocí Apache Oozie.

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

Apache Oozie - Výukový program Oozie - EdurekaApache Oozie je plánovací systém pro správu a provádění úloh Hadoop v distribuovaném prostředí. Můžeme vytvořit požadovaný kanál kombinováním různých druhů úkolů. Může to být váš úkol Úl, Prase, Sqoop nebo MapReduce. Pomocí Apache Oozie můžete také naplánovat své úlohy. V rámci sekvence úkolu lze naprogramovat také dvě nebo více úloh tak, aby běžely paralelně navzájem. Jedná se o škálovatelný, spolehlivý a rozšiřitelný systém.



Oozie je webová aplikace Java s otevřeným zdrojovým kódem, která je zodpovědná za spouštění akcí pracovního postupu. To zase používá k provádění úkolů spouštěcí stroj Hadoop.

Apache Oozie detekuje dokončení úkolů pomocí zpětného volání a dotazování. Když Oozie spustí úkol, poskytne úkolu jedinečné URL HTTP zpětného volání a po dokončení úkolu upozorní na tuto adresu URL. Pokud se úkolu nepodaří vyvolat URL zpětného volání, může Oozie vyzvat úkol k dokončení.

V Apache Oozie existují tři typy úloh:



  • Úlohy pracovního postupu Oozie & minus Jedná se o přímé acyklické grafy (DAG), které specifikují sled akcí, které mají být provedeny.
  • Pracovní příležitosti pro koordinátora Oozie & minus Jedná se o úlohy pracovního toku spouštěné časem a dostupností dat.
  • Balíčky Oozie & minus Mohou být označovány jako balíček více koordinátorů a úloh pracovního postupu.

Pojďme nyní pochopit všechny tyto úlohy jeden po druhém.

Výukový program Apache Oozie: Pracovní postup Oozie

Pracovní postup je sled akcí uspořádaných do přímého acyklického grafu (DAG). Akce jsou navzájem závislé, protože další akci lze provést až po výstupu aktuální akce. Akce pracovního postupu může být akce Pig, akce Hive, akce MapReduce, akce Shell, akce Java atd. Mohou existovat rozhodovací stromy, které rozhodují o tom, jak a za jakých podmínek by se úloha měla spustit.

Můžeme vytvořit různé typy akcí na základě úlohy a každý typ akce může mít svůj vlastní typ značek.Pracovní postup a skripty nebo sklenice by měly být umístěny do cesty HDFS před provedením pracovního postupu.

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

Chcete-li zkontrolovat stav úlohy, můžete přejít na webovou konzolu Oozie, tj. http: // název_hostitele: 11000 . Kliknutím na úlohu se zobrazí její stav.

Ve scénářích, kde chceme paralelně spouštět více úloh, můžeme použít Vidlička . Kdykoli použijeme vidličku, musíme použít Připojit jako koncový uzel vidlice. U každé vidlice by mělo být spojení. Spojení předpokládá, že všechny uzly vykonávající paralelně jsou dítětem jedné vidlice. Například můžeme vytvořit dvě tabulky současně paralelně.

Pokud chceme spustit akci na základě výstupu rozhodnutí, můžeme přidat rozhodovací značky. Například pokud již máme tabulku úlů, nebudeme ji muset znovu vytvářet. V této situaci můžeme přidat rozhodovací značku, která nespustí kroky vytvoření tabulky, pokud tabulka již existuje. Rozhodovací uzly mají značku přepínače podobnou případu přepínače.

Hodnotu sledovače úloh, uzlu názvu, skriptu a parametru lze předat přímo. Ale je těžké to zvládnout. Zde se hodí konfigurační soubor (tj. Soubor vlastností).

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

Pomocí nástroje Coordinator můžete naplánovat složité pracovní toky i pracovní toky, které jsou pravidelně naplánovány. Koordinátoři Oozie spouští úlohy pracovních toků na základě predikátů času, dat nebo událostí. Pracovní postupy uvnitř koordinátoru úloh se spustí, když je daná podmínka splněna.

Definice požadované pro úlohy koordinátora jsou:

  • Start & minus Spustit datetime pro úlohu.
  • konec & minus Konec datetime pro úlohu.
  • časové pásmo & minus Časové pásmo aplikace koordinátora.
  • frekvence & minus Frekvence provádění úloh v minutách.

Pro ovládací informace jsou k dispozici některé další vlastnosti:

  • Časový limit & minus Maximální doba v minutách, po kterou bude akce čekat na splnění dalších podmínek, než bude zahozena. 0 označuje, že pokud nejsou všechny vstupní události v době materializace akce splněny, měla by akce okamžitě vypršet. -1 označuje žádný časový limit, akce bude čekat navždy. Výchozí hodnota je -1.
  • konkurence & minus Maximální počet akcí pro úlohu, která může běžet paralelně. Výchozí hodnota je 1.
  • provedení - Určuje pořadí provedení, pokud více instancí úlohy koordinátora splnilo svá kritéria provedení. To může být:
    • FIFO (výchozí)
    • LIFO
    • POSLEDNĚ

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

Pokud při odesílání úlohy koordinátora není s konfigurací úlohy poskytnuta vlastnost konfigurace použitá v definici, odeslání úlohy se nezdaří.

Výukový program Apache Oozie: Balíček Oozie

Systém Oozie Bundleumožňuje definovat a provádět sadu aplikací koordinátorů, často nazývaných datový kanál. Ve svazku Oozie neexistuje žádná explicitní závislost mezi aplikacemi koordinátora. Můžete však použít datovou závislost aplikací koordinátorů k vytvoření kanálu implicitních datových aplikací.Balíček můžete spustit / zastavit / pozastavit / obnovit / znovu spustit. Poskytuje lepší a snadnější provozní kontrolu.

Zahajovací čas & minus Čas, kdy by měl balíček začít a odeslat žádosti koordinátora.

Pokrok v tomto tutoriálu Apache Oozie pochopíme, jak vytvořit úlohu pracovního postupu.

Výukový program Apache Oozie: Job Workflow Job

V tomto příkladu provedeme úlohu počtu slov pomocí Apache Oozie. Zde nebudeme diskutovat o tom, jak napsat program počítání slov MapReduce. Než tedy budete pokračovat v tomto tutoriálu Apache Oozie, musíte si ho stáhnout počet slov jar soubor. Nyní vytvořte adresář WordCountTest, kam umístíme všechny soubory. Vytvořte adresář lib, kam umístíme nádobu na počítání slov, jak je znázorněno na obrázcích níže.

Nyní pojďme posunout vpřed a tvořit job.properties & workflow.xml soubory, kde specifikujeme úlohu a parametry s ní spojené.

job.properties

Nejprve vytváříme job.properties souboru, kde definujeme cestu NameNode & ResourceManager. Cesta NameNode je vyžadována pro vyřešení cesty adresáře pracovního postupu a cesta jobTracker pomůže při odeslání úlohy do YARN. Musíme poskytnout cestu k workflow.xml soubor, který by měl být uložen v HDFS.

jaký je rozdíl mezi třídou a rozhraním

workflow.xml

Dále musíme vytvořit workflow.xml soubor, kde definujeme všechny naše akce a provedeme je. Nejprve musíme určit název aplikace pracovního postupu, tj. WorkflowRunnerTest . Poté specifikujeme počáteční uzel . Počáteční uzel ( v the začít štítek ) je vstupní bod pro úlohu pracovního postupu. Ukazuje na první uzel pracovního postupu, odkud by měla úloha začít. Jak vidíte na obrázku níže, další uzel je křižovatka0 odkud bude práce zahájena.

Dále zadáváme úkol, který má být proveden, v uzlu akce. Zde provádíme úlohu MapReduce WordCount. Musíme určit konfigurace požadované pro provedení této úlohy MapReduce. Definujeme sledovač úloh a adresu NameNode.

Další je připravený prvek, který se používá výhradně k vyčištění adresáře, před provedením akce. Zde provádíme operaci odstranění v HDFS pro odstranění out1 složka, pokud je již vytvořena. Značka Prepare se používá k vytvoření nebo odstranění složky před provedením úlohy. Pak specifikujeme vlastnosti MapReduce, jako je název fronty úloh, třída mapovače, třída redukce, třída výstupního klíče a třída výstupní hodnoty.

Poslední konfigurací úlohy MapReduce je vstupní a výstupní adresář v HDFS. Vstupní adresář je data adresář, který je uložen v kořenové cestě NameNode . Nakonec zadáme prvek zabití, pokud se úloha nezdaří.

Nyní musíme přesunout WordCountTest složku v HDFS, jak jsme uvedli v oozie.wf.application.path nemovitost v job.properties soubor. Takže kopírujeme WordCountTest složku v kořenovém adresáři Hadoop.

Příkaz: hadoop fs -put WordCountTest /

Chcete-li ověřit, můžete přejít do webového uživatelského rozhraní NameNode a zkontrolovat, zda byla složka nahrána v kořenovém adresáři HDFS nebo ne.

Nyní jsme všichni připraveni pokročit a provést úlohu pracovního postupu.

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

předat hodnotu vs předat odkaz java

Jakmile provedeme svou práci, dostaneme ID úlohy (tj. 0000009-171219160449620-oozie-edur-W ), jak je znázorněno na obrázku výše. Můžete jít a zkontrolovat úlohu, kterou jste zadali ve webovém uživatelském rozhraní Oozie, tj. localhost: 11000 . Na následujícím obrázku můžete vidět, že úloha, kterou jsme zadali, je uvedena níže.

Pokud budete na výše uvedeném obrázku pozorovat, uvidíte ID úlohy, název úlohy, stav úlohy, uživatele, který úlohu odeslal, čas vytvoření, zahájení a poslední úpravy. Kliknutím na úlohu získáte další podrobnosti, například:

  • Informace o práci

  • Definice úlohy

  • Konfigurace úlohy

Vzhledem k tomu, že je stav úlohy úspěšný, musíme přejít do kořenového adresáře HDFS a zkontrolovat, zda byl vytvořen výstupní adresář.

Jak vidíte, že oozieout adresář byl vytvořen v HDFS, takže se nyní podívejme na výstupní soubor, který byl vytvořen.

Jak jsme viděli, jak vytvořit úlohu pracovního postupu Oozie, nyní postoupíme v tomto blogu Apache Oozie Tutorial a pochopíme, jak vytvořit úlohu koordinátora.

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

V tomto příkladu budeme vytvářet časově koordinovanou úlohu koordinátora počtu slov, která bude provedena po určitém časovém intervalu. Úlohu můžete vytvořit a naplánovat pomocí Apache Oozie, které je třeba spouštět denně nebo pravidelně.

Pojďme v tomto výukovém programu Apache Oozie rychle pokročit a vytvořit úlohu koordinátora. Zde budeme vytvářet tři soubory, tj. koordinátor.vlastnosti , coordinator.xml & workflow.xml soubor. Opět zde umístíme w ordcount sklenice uvnitř lib adresář, jak je znázorněno na následujícím obrázku.

Podívejme se nyní na tyto soubory jednotlivě. Nejprve začneme souborem coordinator.properties.

Zde určujeme frekvenci, při které bude pracovní tok prováděn. Frekvence je vždy vyjádřena v minutách. V našem případě bude tato úloha koordinátora provedena jednou za hodinu mezi zadaným časem. Frekvence se používá k zachycení periodických intervalů, ve kterých se vytvářejí datové sady, a spuštění aplikací koordinátorů.

K definování frekvence v minutách, hodinách, dnech a měsících použijte následující 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)} proměnná $ {coord: days (2)} -> minuty za 2 celé dny od aktuálního data
$ {coord: months (int n)} proměnná $ {coord: months (1)} -> minuty za 1 celý měsíc od aktuálního data

Dále definujeme počáteční a koncový čas úlohy, jak je znázorněno na obrázku výše. Doba spuštění je počáteční datum a čas pro práci & endTime je konečný datový čas úlohy.

Dále zadáváme adresu URL NameNode & ResourceManager, která se použije k odkazování na soubor workflow.xml v HDFS a odeslání úloh na YARN. Nakonec zadáme cestu workflow.xml, kterou uložíme do HDFS. Určíme také cestu k aplikaci, kde budou uloženy všechny adresáře files & lib.

Druhý soubor je coordinator.xml kde použijeme všechny vlastnosti, které jsme zadali v koordinátor.vlastnosti soubor. Nyní nejprve určíme vlastnosti aplikace koordinátora, tj. Název, frekvenci a časové pásmo. Dále zadáme pracovní postupy jeden po druhém. Zde máme pouze jeden pracovní postup. Takže uvnitř prvku akce vytvoříme prvek pracovního toku, kde určíme cestu aplikace.

Dále musíme postupovat vpřed workflow.xml soubor, kde zadáme úkol. Je to podobné jako u workflow.xml soubor, který jsme vytvořili v práci pracovního postupu.

Nyní to znovu přesuneme WordCountTest_TimedBased adresář na HDFS.

Příkaz : hadoop fs -put WordCountTest_TimeBased /

Nyní jsme všichni připraveni pokročit a provést tuto úlohu koordinátora v tomto výukovém programu Oozie. Pojďme to provést.

Příkaz : oozie job –oozie http: // localhost: 11000 / oozie -config coordinator.properties -run

jak vytvořit sadu

Poznamenejte si toto ID úlohy koordinátora (tj. 0000010-171219160449620-oozie-edur-C). Pomůže vám sledovat vaši práci v uživatelském rozhraní Oozie Web.

Úlohu můžete zobrazit na kartě Úlohy koordinátora ve webovém uživatelském rozhraní Oozie. Podobně jako u pracovního postupu máme název, stav, uživatele, frekvenci, čas zahájení a ukončení úlohy. Když kliknete na konkrétní úlohu, uvidíte podrobnosti úlohy, jak je znázorněno na následujících obrázcích.

  • Informace o pracovní pozici koordinátora

  • Definice úlohy koordinátora

  • Konfigurace úlohy koordinátora

Nyní, jak jsme prošli různými kartami. Vrátíme se do kořenového adresáře HDFS, kde bude vytvořena výstupní složka. Jak vidíte na následujícím obrázku, oozieTimeBasedout adresář byl vytvořen, jak jsme uvedli v workflow.xml soubor.

Pojďme se nyní podívat na výstupní soubor, který byl vytvořen.

Doufám, že vám tento blog Apache Oozie Tutorial připadal poučný. Pokud se chcete dozvědět více, můžete si projít toto který vám řekne o Big Data a o tom, jak Hadoop řeší výzvy spojené s Big Data.

Nyní, když jste porozuměli Apache Oozie, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Kurz certifikace Edureka Big Data Hadoop Certification Training pomáhá studentům stát se odborníky na HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume a Sqoop pomocí případů použití v reálném čase v oblasti maloobchodu, sociálních médií, letectví, cestovního ruchu, financí.

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.