Jiskrové stupne Naučte sa typy a výhody javov iskier

Obsah:

Anonim

Prehľad stupňov iskry

Fáza procesu vykonávania nie je nič iné ako úroveň, cez ktorú musí prejsť každá z úloh. Celá iskra je rozdelená do mnohých etáp pre efektívne spracovanie dát. Každá úloha sa vykonáva v samostatnom oddiele.

Kedykoľvek užívateľ podá žiadosť o iskru do aplikácie Spark, ovládač Spark ju prijme a identifikuje rôzne druhy akcií / transformácií prítomných v aplikácii. Ďalej budú tieto operácie usporiadané do vývojového diagramu nazývaného DAG. DAG (Directed Acyclic Graph) sa vytvára vždy, keď je na RDD vyvolaná akcia alebo transformácia, ktorá zase volá DAGScheduler.

Význam DAG je nasledujúci:

  • Réžia: Všetky uzly sú navzájom spojené a vytvárajú acyklický graf. Ich postupnosť je určená činnosťami vyvolanými na RDD.
  • Acyklické: Uzly nie sú spojené ako cyklická slučka, tj ak sa raz vykonala akcia alebo transformácia, nemožno ju vrátiť späť na pôvodnú hodnotu.
  • Graf: Celý vzor tvorený okrajmi a vrcholmi usporiadanými dohromady v konkrétnom vzore sa nazýva graf. Vrcholy nie sú nič iné ako RDD a hrany sú akcie nazývané RDD.

DAGScheduler je ten, ktorý rozdeľuje fázy do viacerých úloh. DAGScheduler potom odovzdá informácie o javisku manažérovi klastrov (YARN / Spark standalone), ktorý spustí plánovač úloh na vykonanie úloh. Ovládač iskry prevádza logický plán na plán fyzického vykonávania. Sparkové úlohy sa vykonávajú pomocou metódy pipelining, kde sú všetky transformačné úlohy kombinované do jednej fázy.

transformácia

Uskutočňujú sa 2 druhy transformácií:

1. Úzke transformácie : Sú to transformácie, ktoré nevyžadujú proces miešania. Tieto akcie je možné vykonať v jednej fáze.

Príklad: map () a filter ()

2. Široké transformácie : Sú to transformácie, ktoré si vyžadujú premiešanie v rôznych oddieloch. Preto je potrebné vytvoriť rôzne fázy pre komunikáciu medzi rôznymi oddielmi.

Príklad: ReduceByKey

Urobme príklad pre lepšie pochopenie toho, ako to funguje.

Príklad: V tomto príklade uvidíme, ako funguje jednoduché počítanie slov pomocou Spark DAGScheduler.

  • val data = sc.textFile („data.txt“)

Výsledok: údaje: org.apache.spark.rdd.RDD (String) = data.txt MapPartitionsRDD (46) v textovom súboreFile o: 24

Najprv sa vykoná operácia textFile na prečítanie daného vstupného textového súboru z umiestnenia HDFS.

  • data.flatMap (_. split (”“)). map (i => (i, 1)). reduByKey (_ + _).

Výsledok: res21: Array ((String, Int)) = Array ()

Ďalej sa uskutoční operácia flatMap na rozdelenie riadkov v celom vstupnom súbore do rôznych slov. Potom sa vykoná mapová operácia, aby sa pre každé zo slov vytvorili (kľúč, hodnota) páry ako (slovo, 1). A funkcia reduByKey sa volá, aby našla súčet impulzov pre každé slovo. A konečne, spoločná akcia poskytne konečný výsledok zhromažďovaním všetkých údajov.

Počas tohto programu vytvorí program Spark 2 fázy, pretože tu prebieha transformácia. Počas operácie transformácie je potrebné vykonať premiešavanie, pretože údaje sa musia zamieňať medzi dvoma alebo viacerými rôznymi oddielmi. Preto sa vytvorí fáza a potom sa vytvorí ďalšia jediná fáza pre úlohu transformácie.

Interne sa tieto fázy rozdelia na úlohy. V tomto príklade je každá fáza rozdelená na 2 úlohy, pretože existujú 2 oddiely. Každý oddiel spustí samostatnú úlohu.

Druhy javov iskry

Nižšie sú uvedené dva typy javov iskry

1. ShuffleMapStage

Toto je v podstate medzistupeň v procese vykonávania DAG. Výstup tejto etapy sa používa ako vstup pre ďalšie etapy. Ich výstup je vo forme výstupných súborov máp, ktoré sa môžu neskôr použiť znížením úlohy. ShuffleMapStage sa považuje za pripravený, keď sú k dispozícii všetky výstupy z mapy. Niekedy môžu výstupné miesta chýbať v prípadoch, keď sú oddiely stratené alebo nie sú dostupné.

Táto fáza môže obsahovať mnoho operácií potrubia, ako napríklad map () a filter () pred vykonaním premiešavania. ShuffleMapStage používa interné registre outputLocs a _numAvailableOutputs na sledovanie počtu výstupov mapy náhodného výberu. Jeden ShuffleMapStage sa dá bežne používať pri rôznych úlohách.

2. ResultStage

Ako už názov napovedá, toto je posledná fáza úlohy Spark, ktorá vykonáva operáciu na jednej alebo viacerých oddieloch RDD na výpočet jej výsledku. Inicializáciu interných registrov a počítadiel vykonáva ResultStage.

DAGScheduler odošle chýbajúce úlohy, ak nejaké existujú, do ResultStage na výpočet. Na výpočet sa vyžadujú rôzne povinné parametre, ako napríklad stageId, stageAttempId, vysielacia premenná serializovanej úlohy, oddiel, preferované úlohyLocations, outputId, niektoré miestne vlastnosti, TaskMetrics tejto konkrétnej fázy. Niektoré z voliteľných požadovaných parametrov sú ID úlohy, ID aplikácie a ID pokusu o aplikáciu.

Výhody Spark Stage

Nižšie sú uvedené rôzne výhody javov Spark:

1. Dynamické prideľovanie exekútorov

Z pohľadu časovej osi udalosti Spark Job vidíme, že prideľovanie exekútorov sa vykonáva dynamicky. To znamená, že vykonávatelia sú volaní z klastra v závislosti od pracovného zaťaženia počas vykonávania úlohy. Potom sa uvoľní späť do klastra, len čo sa dokončí jeho práca. To šetrí pamäť vyhradenú pre prostriedky a umožňuje ostatným aplikáciám spusteným v rovnakom klastri opätovne použiť spustiteľné programy. Preto sa celkové využitie klastrov zvýši a bude optimálne.

2. Vyrovnávacia pamäť

RDD sa ukladajú do pamäte cache počas operácií, ktoré sa na nich vykonávajú v každej fáze a ukladajú sa do pamäte. Toto je užitočné pri šetrení výpočtového času, keď konečný výsledok vyžaduje, aby sa rovnaké dáta RDD znova načítali z HDFS.

3. Paralelné vykonanie

Spark úlohy, ktoré sú na sebe nezávislé, sa vykonávajú paralelne, pokiaľ a pokiaľ nie je potrebné premiešanie alebo vstup jednej fázy nezávisí od jej predchádzajúceho výstupu.

4. Vizualizácia DAG

To je veľmi užitočné v prípadoch zložitých výpočtov, v ktorých je zahrnutých veľa operácií a ich závislosti. Keď vidíme túto vizualizáciu DAG, môžeme ľahko sledovať tok a identifikovať blokovania výkonu. Kliknutím na fázy zobrazené v tejto vizualizácii môžete tiež vidieť každú úlohu spustenú v každej fáze. V tomto rozšírenom pohľade sú zobrazené všetky podrobnosti o RDD, ktoré patria do tejto fázy.

5. Odolnosť voči poruchám

Kvôli operácii ukladania do pamäte cache vykonanej na RDD bude mať DAG záznam o každej akcii vykonanej na nich. Preto sa v každom prípade predpokladá, že sa RDD stratí, dá sa ľahko získať pomocou DAG. Správca klastrov sa dá použiť na identifikáciu oblasti, v ktorej bol stratený, a rovnaký RDD môže byť znovu umiestnený do tej istej oblasti na obnovenie straty dát.

Kvôli vyššie uvedeným výhodám sa Apache Spark často používa namiesto predtým používaných MapReduce. Fázy iskier nie sú nič iné ako rozšírená verzia MapReduce. Pretože MapReduce vyžadoval, aby boli dáta načítané a zapisované do HDFS viackrát, bol predstavený Spark, ktorý tieto akcie vykonáva vo svojej pamäti.

záver

Preto môžeme dospieť k záveru, že stupne iskier sú efektívnejšie z dôvodu ich výpočtu v pamäti, zvýšenej rýchlosti spracovania aj pre iteračné spracovanie.

Odporúčané články

Toto je sprievodca programom Spark Stage. Tu diskutujeme Typy transformácie a Typy a výhody Spark Stage. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Ako nainštalovať iskru
  2. Spark Streaming
  3. Kariéra v iskre
  4. Spark Interview Otázky
  5. Prehľad a 6 najdôležitejších súčastí iskry