Blog

APACHE SPARK edukativne radionice

Edukativne radionice namijenjene su arhitektima informacijskih sustava, razvojnim inženjerima i poslovnim analitičarima.
, 23.02.2018.

Apache Spark je framework za brzu obradu velike količine podataka i može se koristiti generalno za sve vrste obrade podataka. Apache Spark je jako popularan sustav koji se uvelike koristi za naprednu analitiku, data science, modernu BigData arhitekturu kao i kompleksna batch (ETL) procesiranja te za obradu u relalnom vremenu. Spark sadrži nekoliko ključnih komponenti kako što su: Spark SQL za strukturiranje podataka, Spark Streaming za obradu velike količine podataka u realnom vremenu, Spark MLlib za strojno učenje, Spark GraphX za graph procesiranje te SparkR za statističku obradu podataka korištenjem R jezika. Spark se može pokretati samostalno, na YARN (Hadoop) clusteru ili u Mesos okruženju, dakle može se pokretati u bilo kojem okruženju. Spark je polyglot framework što znači da maksimalno apstrahira njegovu primjenu pa tako razvojnom okruženju nameće korištenje programskog jezika (Python, Java, Scala, R) koji najbolje odgovara unutar organizacije ili vrsti posla. Svi primjeri u ovoj edukaciji bit će primarno obrađeni u Pythonu, ali primijeniti će se i drugi programski jezici npr. Scala. Raditi će se u samostalnom i cluster okruženju ovisno o zadatku koji će polaznici odrađivati.

Publika

Ova edukacija namijenjena je arhitektima informacijskih sustava, razvojnim inženjerima i poslovnim analitičarima.

Modularnost radionice

Uvod u Spark je edukacija namijenjena svima onima koji žele upoznati s osnovnim programiranje na Spark frameworku. Spark edukacija je modularna što znači da se mogu birati moduli ovisno o željnoj temi. Npr. mogu se odabrati moduli 1, 2 i 5 ili 1,2,3 ili 1,2,4. ili neka druga željena kombinacija.

Data Science tematika pogodna je za BI eksperte, poslovne analitičare i prediktivne analitičare.

Data Engineering tematika pogodna je za administratore sustava, razvojne inženjere i arhitekte sustava.

Opis radionice po modulima

PREDUVJETI ZA POHAĐANJE RADIONICE

Preduvjeti za pohađanje edukacije su osnovno poznavanje SQL-a, osnovno poznavanje Python i/ili Scala programskog jezika te poznavanje OO programiranja.


Uvod u Spark okruženja

Modul pokriva uvod i osnovna objašnjenja kako Spark funkcionira. Kroz interaktivne primjere biti će objašnjeni svi aspekti tehnologije. Detaljno će biti objašnjena arhitektura sustava, Apache Hadoop, osnove MapReduce frameworka, te osnovni Spark API-i RDD, DataFrame, Spark SQL.

Ovaj modul namijenjen je arhitektima informacijskih sustava, razvojnim inženjerima i poslovnim analitičarima.


Spark Analytics – primjena Sparka u praksi

Drugi modul se odnosi na izgradnju Spark aplikacije koristeći prethodno stečena znanja. Aplikacija je iz područja napredne analitike gdje će se obraditi ciljani skup podataka – od učitavanja velikog seta podataka, čišćenja do konačne vizualizacije.

Ovaj modul namijenjen je arhitektima informacijskih sustava, razvojnim inženjerima i poslovnim analitičarima.


Napredno korištenje – Spark u praksi

Treći modul fokusiran je na postavljenje Spark aplikacija u produkcijsku okolinu. Detaljno se objašnjava kako uspostaviti radno okruženje, kako optimizirati Spark aplikacije, te kako pokretati Spark aplikacije u Hadoop okruženju.

Ovaj modul namijenjen je arhitektima informacijskih sustava i razvojnim inženjerima.


Napredno korištenje – Streaming i obrada podataka u stvarnom vremenu

Četvrti modul namijenjen je polaznicima koji žele naučiti naprednije stvari u Spark okruženju kao što je primjerice Spark Streaming. Polaznici će dobiti sve potrebne informacije o tome kako uspostaviti streaming proces za obradu podataka u realnom vremenu te će zadatak iz prvog dijela dograditi sa streaming elementima.

Ovaj modul namijenjen je arhitektima informacijskih sustava i razvojnim inženjerima.


Napredno korištenje – Data Science

Zvijezda petog modula je MLlib library za strojno učenje (machine learning). Polaznici će izgraditi model za strojno učenje na kojem će se pokazati proces treniranja modela. Primjenom Spark GraphX modula za obradu i procesiranje graova, na nekoliko primjera biti će pokazano kako se uspješno koriste u praksi.

Ovaj modul namijenjen je poslovnim analitičarima i data science inženjerima.


Detaljan opis radionice po danima

Dan 1 – Uvod u Apache Spark

Što je Apache Spark?

Korištenje Sparka (samostalno, cluster, shell)

Što je RDD i kako ga koristiti?

  • Transformacije
  • Akcije
  • “Lazy evaluation”
  • Perzistencija podataka – caching
  • Funkcije (Python, Scala, Java)

Key/value strukture

  • Tipovi podataka – kreiranje i održavanje
  • Transformacija (agregacije, sortiranje, join)

DataFrame

  • Što je DataFrame?
  • Transformacije i akcije nad DataFrameom
  • Napredno korištenje

Učitavanje i pohranjivanje podataka

  • Rad s različitim formatima datoteka (TXT, JSON, AVRO, Parquet, Seq File)
  • Rad s različitim spremištima podataka i datotečnim sustavima (Local, Amazon S3, HDFS)
  • Baze podataka (RDBMS, Cassandra, HBase)
  • Spark SQL
  • Povezivanje Spark SQL
  • SQL u aplikacijama (Inicijalizacija, DataFrames, Caching)
  • Funkcije

Dan 2 – Spark Analytics – primjena Sparka u praksi

Prikupljanje podataka za cjelodnevni zadatak iz konteksta napredne analitike

  • Upoznavanje sa skupom podataka
  • Poslovni zahtjevi, ciljevi zadatka

Priprema i čišćenje podataka

  • Profiliranje podataka i postojećih struktura
  • Čišćenje podataka od anomalija i potencijalnih pogrešaka
    • Agregacija podataka
  • Metode agregiranja podataka
  • Pronalazak optimalnog slučaja
  • Optimizacija procesa

Debugging aplikacije

Vizualizacija podataka

Dan 3 – Spark u produkciji

Razvojno okruženje:

  • Workspace (PyCharm, Anaconda, Zeppelin i Jupyter notebook)
  • Build aplikacija
  • Deployment aplikacija
  • Debugging
  • Testiranje (Unit test, integration test)

Pokretanje Spark aplikacija na Cluster okruženju (Hadoop YARN)

  • Optimizacija Executora i workera
  • HW Sizing
  • Monitoring

Spark Memory Management

  • Perzistencija – Caching
  • Tungsten
  • Garbage collection

24/7 operacije Streaming

  • Mehanizmi kontrole streaming procesa – Checkpointing
  • Tolerancija na ispad sustava (driver, worker, receiver, process guaranties)
  • Nadzor podataka
  • Nadzor procesa
  • Streaming UI

Upravljanje s performansama

  • Dimenzioniranje sustava (Batch and window size)
  • Razina paralelizma

Dan 4 – Spark Streaming – primjena obrade podataka u stvarnom vremenu

Uvod u streaming procese

Skup podataka za streaming proces

  • Korekcija postojećeg skupa podataka
  • Priprema za streaming

Spark Streaming

  • Uvod u Spark Streaming
  • Osnovni koncepti i operacije
  • Streaming operacije (Transformations, window operations)

Spark Structured Streaming

  • Structured Streaming API koncept
  • Continuous application
  • Operacije nad streamingom
  • Upravljanje streamom i upiti
  • Oporavak streama i checkpointing

Operacije za upravljanje sa streamom

  • Odredišne operacije (Save DStream)
  • Izvori tokova podataka (osnovni izvori, socket, Kafka, files)
  • Upravljanje s više izvora
  • Dimenzioniranje clustera za potreba streaming operacija 

Dan 5 – Data Science

Korištenje Spark MLlib za potrebe strojnog učenja

Osnove strojnog učenja

Tipovi podataka – vektori

Primjena najčešćih algoritama s konkretnim Spark primjerima

  • Klasifikacije i regresija
  • “Feature Extraction”
  • Klasteriranje
  • Redukcija dimenzija

Trikovi i najbolje prakse

Evaluacija modela

Spark GraphX – procesiranje grafa

Osnove grafova i zašto ih koristimo

Kako pripremiti set podataka (GraphFrames)

Graf algoritmi koji se koriste nad grafovima koristeći Spark GraphX

  • ShortestPaths
  • PageRank
  • ConnectedComponents

Za više informacija kontaktirajte nas na adresu croz@croz.net.

Tagovi:
Povratak