sql >> Databáze >  >> RDS >> Database

Rámec Apache Spark Job Run!

Nyní naše komunita pro analýzu velkých dat začala naplno využívat Apache Spark pro zpracování velkých dat. Zpracování může pro ad-hoc dotazy, předem sestavené dotazy, zpracování grafů, strojové učení a dokonce i pro streamování dat.

Pochopení Spark Job Submission je proto pro komunitu velmi důležité. Rozšiřte se o to, že se s vámi rádi podělíme o poznatky o krocích zahrnutých v odeslání úlohy Apache Spark.

V zásadě má dva kroky,

Předání úlohy

Úloha Spark je odeslána automaticky, když jsou na RDD provedeny akce jako count ().
Interně runJob() bude volána na SparkContext a poté zavolána do plánovače, který běží jako součást derivace. Plánovač se skládá ze 2 částí – DAG Scheduler a Task Scheduler.

DAG Construction

Existují dva typy konstrukcí DAG,

  • Jednoduchá úloha Spark je taková, která nepotřebuje míchání, a proto má pouze jednu fázi složenou z výsledných úloh, jako je úloha pouze na mapě v MapReduce
  • Složitá úloha Spark zahrnuje operace seskupování a vyžaduje jednu nebo více fází náhodného přehrávání.
  • Plánovač DAG společnosti Spark změní úlohu na dvě fáze.
  • Plánovač DAG je zodpovědný za rozdělení fáze na úkoly, které se předkládají plánovači úloh.
  • Každé úloze dává plánovač DAG přednost umístění, aby plánovač úloh mohl využít datovou lokalitu.
  • Podřízené fáze jsou odesílány, až když je rodiče úspěšně dokončí.

Plánování úloh

  • Plánovač úloh odešle sadu úloh; používá svůj seznam exekutorů, kteří jsou pro aplikaci spuštěni, a vytváří mapování úkolů k exekutorům, které bere v úvahu preference umístění.
  • Plánovač úloh přiděluje exekutorům, kteří mají volná jádra, každé úloze je standardně přiděleno jedno jádro. Lze jej změnit parametrem spark.task.cpus.
  • Spark používá Akka, což je platforma založená na hercích pro vytváření vysoce škálovatelných distribuovaných aplikací řízených událostmi.
  • Spark nepoužívá Hadoop RPC pro vzdálená volání.

Provedení úlohy

Exekutor spustí úlohu následovně,

  • Zajišťuje, že JAR a závislosti souborů pro úlohu jsou aktuální.
  • Zruší serializaci kódu úlohy.
  • Kód úlohy se provede.
  • Úloha vrátí výsledky ovladači, který se sestaví do konečného výsledku, který se vrátí uživateli.

Reference

  •  The Hadoop Definitive Guide
  • Analytics &Big Data Open Source Community

Tento článek se původně objevil zde. Znovu publikováno se svolením. Své stížnosti na porušení autorských práv odešlete zde.


  1. Jak funguje poddotaz v příkazu select v oracle

  2. Převeďte datum řetězce na datum a čas v Oracle

  3. Konfigurace skupin dostupnosti AlwaysOn – část 2

  4. Doporučené postupy mysqldump:Část 1 – Předpoklady pro MySQL