Mastering Apache Spark

Profesjonalny programista musi zachować równowagę pomiędzy byciem ekspertem na bardzo wąskim polu, i orientacją w zmieniających się wyzwaniach naszej branży. Big Data to jedna z tych dziedzin, których profesjonalny inżynier oprogramowania po prostu nie może zignorować. Środowiska, w których awaria infrastruktury jest częścią codziennej rutyny, gromadzone dane, które nie mieszczą się na pojedynczej maszynie lub dane które muszą być przetwarzane szybko (w sekundach, a nie w godzinach) – to tylko kilka wyzwań, przed którymi stoją projekty Big Data. Apache Spark to szybkie i ogólne narzędzie do przetwarzania danych na dużą skalę. Był on od razu zaprojektowany tak, aby poradzić sobie z wyżej wymienionymi problemami. Niezależnie od tego, czy zajmujesz się Big Data w tej chwili, czy nie, wraz z wykładniczym wzrostem naszej branży (zarówno pod względem złożoności, jak i przestrzeni użytkowników) i pojawiającymi się nowymi dziedzinami, takimi jak nauka dot. danych – może okazać się, że dogłębna znajomość Apache Spark może mieć kluczowe znaczenie.

Pojęcia i umiejętności

Wśród wielu pojęć, z którymi zapoznają się uczestnicy, są:

Big Data, Map-Reduce, Partitioning, HA & resilience in cluster environment, HDFS Apache Spark architecture (logical & physical), Driver program, Master node, Worker node, Executor, RDD (Resilient Distributed Dataset), Transformations & Actions, Partitions, Tasks, Pipelining, Shuffeling, DAG (Directed Acyclic Graph), data locality, Spark Execution Model, Partitoner, Caching, Checkpointing, Broadcast, Accumulators, Spark Memory Model, DataFrames, Datasets, Working with semi-structured & strucutred data (json, parquet, avro), Spark Catalyst optimizer, predicate push down, Project Tungsten, Streaming, DStream, Strucutred Streaming, Back pressure & Elastic Scaling.

Program:

  1. Wprowadzenie
    • Co to jest Apache Spark?
    • Co było wcześniej?
    • Wyzwania, problemy i zagadnienia z MapReduce
    • The Big Picture
  2. Spark Core
    1. Typowe pułapki (groupBy)
    2. Pogłębiona wiedza na temat działania klastra
    3. Problemy Classpath & Serialization
    4. Konfiguracja Spark
    5. Spark UI & Spark history server
    • RDD
    • Transformacje vs. działania
    • Partycje i zadania
    • RDD for key values
    • Pipelining & Shuffling
    • DAG & Stages
    • Resilience
    • Problemy z wydajnością i sposoby zaradzenia im
    • Caching & Checkpointing
    • Broadcasts & Accumulators
    • Joins
  3. Spark Core – elementy wewnętrzne
    • 5 rzeczy definiujących RDD
    • Algorytmy tasowania
    • Model pamięci Spark
  4. Spark SQL
    • Zalety danych pół-strukturyzowanych
    • SQL
      • Wprowadzenie
      • Joins
      • Hive
    • Dataframes
      • Wprowadzenie
      • Joins
      • JSON
      • Parquet
      • Avro
    • DataSets
      • Problemy z Dataframes
      • Dataset na ratunek!
    • Dlaczego Spark SQL działa szybciej
      • Structure vs Expression
      • Catalyst Optimizer
      • Predicate Push Down
      • Projekt Tungsten
    • Spark SQL – elementy wewnętrzne
      • Jak są wdrażane Dataframes i Datasets
      • Jak działa Catalyst Optimizer
    • Spark Streaming
      • Dlaczego Streaming?
      • Przegląd ogólny
      • Reciever – zadanie długoterminowe
      • Resilience
      • Transformacje
        • Stateless
        • Stateful (Window & Sliding duration, .reduceByWindow, .updateStateByKey vs .mapWithState)
      • Przykład Ultimate Apache Kafka
      • Structured Streaming
    • Pozostałe tematy
      • Back pressure & Elastic Scaling
      • Uruchomienie Spark na Mesos
      • Pytania i odpowiedzi

Zapytaj o szkolenie