| Tytuł: | Przetwarzanie danych Big Data z wykorzystaniem Apache Spark |
| Kod: | BigDataML-BigData |
| Kategoria: | BigData, streaming i Machine Learning |
| Forma: | 40% wykłady 60% ćwiczenia |
| Czas trwania: | 2-3 dni |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
W trakcie szkolenia nauczymy się jak używać Apache Spark framework do szybkiego przetwarzania dużych ilości danych.
Kurs obejmuje wprowadzenie do architektury Apache Spark. Szkolenie może zostać przeprowadzone w języku Scala lub Python. Warsztaty obejmują kompleksowy proces tworzenie aplikacji Sparkowej - integrację ze źródłem, przetwarzanie danych, optymalizację procesu i zapis do bazy danych w środowisku Cloudowym.
Zobaczymy jak wygląda Spark API i będziemy pisać Spark Joby ilustrujące typowe jak i specyficzne problemy. Omówimy optymalizacje, najczęściej spotykane wyzwania i sposoby na ich pokonanie. Szkolenia skupia się głównie na części praktycznej
Program Szkolenia
Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.-
Wprowadzenie do przetwarzania danych z wykorzystaniem Apache Spark.- Geneza - najważniejsze zmiany, co nowego w obecnej wersji Apache Sparka, integracja z Cloudem/Hadoopem
- Wprowadzenie do API
- RDD / Dataset / Dataframe
- Główne cechy i różnice i porównanie wydajności
- Rekomendacje i tips&tricks
- RDD / Dataset / Dataframe
- Lazy Evaluation - Transformations and Actions
- Jak zbudowany jest graf wykonywania transformacji
- Kiedy graf wykonywania jest wykorzystywany
- Jak re-używać wcześniej stworzone RDD z wcześniej wykonanymi transformacjami
- Jak zbudowany jest graf wykonywania transformacji
- Shuffling - Przesyłanie danych między maszynami
- Które transformacje wymagają shufflingu (wide i narrow)
- Koncept ReduceByKey i GroupByKey
- Jak zminimalizować wpływ na wydajność aplikacji
- Które transformacje wymagają shufflingu (wide i narrow)
- Data Partitioning
- Kiedy warto wykonać metodę repartition() a kiedy coalesce()
- Zasady dzielenia wyników na partycje
- Ilość/rozmiar partycji a wydajność przetwarzania
- Kiedy warto wykonać metodę repartition() a kiedy coalesce()
- Podstawowa konfiguracja projektu bazującego na Apache Spark:
- Jak skonfigurować skrypt uruchomieniowy joba
- Jak pisać kod jobów aby był łatwo testowalny
- Jak skonfigurować skrypt uruchomieniowy joba
- Możliwości integracji Sparka z obecnymi rozwiązaniami (baza danych, hdfs, avro, text file, csv, json …)
- Geneza - najważniejsze zmiany, co nowego w obecnej wersji Apache Sparka, integracja z Cloudem/Hadoopem
-
Architektura, integracja, najczęstsze problemy i optymalizacja aplikacji bazujących na Apache Spark- Architektura
- Spark Driver, Worker i Executor
- Job vs Stage vs Task
- Jednostki przetwarzania i danych
- Możliwości deploymentu
- Spark Driver, Worker i Executor
- Testowanie Spark jobów
- Joiny
- Fizyczne typy joinów
- Best practices
- Wykorzystanie Join aby zminimalizować przesyłanie danych pomiędzy maszynami (reduce shuffling)
- Fizyczne typy joinów
- UDF - jak je konstruować i jaki mają wpływ na wydajność. Różnice między Dataframe i Dataset.
- Optymalizacje jobów sparkowych i typowe problemy
- Key-skew
- OOM
- Broadcast
- Cache
- Serialization
- Jak dobierać rozmiar executorów
- Key-skew
- Interpretacja i optymalizacja planów zapytań
- Poruszanie się po Spark UI
- Jak sprawdzać ii na co zwrócić szczególną uwagę
- Poruszanie się po Spark UI
- Spark Catalyst i Tungsten
- Architektura
Pobierz program w formacie PDF