Apache Spark Komplettkurs
Classroom Schulung | Deutsch | Anspruch
Schulungsdauer: 10 Tage
Ziele
In diesem Kurs lernen Sie folgende Module kennen:
- Spark Grundlagen (Modul 1) 1 Tag
- Spark Programmierung (Modul 2) 1 Tag
- Spark Tools (Modul 3) 1 Tag
- Spark SQL (Modul 4) 1 Tag
- GraphX (Modul 5) 1 Tag
- Machine Learning (Modul 6) 2 Tage
- R (Modul 7) 1 Tag
- Streaming (Modul 8) 2 Tage
Aus diesem Komplettkurs sind einzelne Spezialkurse abgeleitet:
- Apache Spark Grundkurs (Modul 1, 2 und 3)
- Apache Spark SQL (Modul 4 und 5)
- Apache Spark ML (Modul 6 und 7)
- Apache Spark Streaming (Modul 8)
Zielgruppe
- (IT-)Architekt
- (IT-)Entwickler
Voraussetzungen
Praktische Erfahrung in der IT-Informationsverarbeitung erforderlich. Kenntnisse im Einsatz relationaler Datenbanken sowie Kenntnisse über Big Data werden vorausgesetzt.
Folgende Seminare und Kurse zur Auffrischung der Kenntnisse um Big Data können hilfreich sein:
1) Einstiegs-Seminare (Schwierigkeitsgrad 100)
a. Big Data Einstieg
b. Big Data Technologien, Strategien und Trends
c. Hortonworks HDP Einstieg
d. Cloudera CDH Einstieg
2) Überblicks-Seminare (Schwierigkeitsgrad 200)
a. Big Data Architekturen Überblick
b. Hadoop Datentechnologien Überblick
Folgende Kurse können darüber hinaus dieses Angebot ergänzen:
3) Vertiefungs-Kurse (Schwierigkeitsgrad 300)
a. Hadoop und Java Vertiefung
b. Hadoop und Python Vertiefung
4) Spezialisierungskurse (Schwierigkeitsgrad 400)
a. Data Scientist Tools Spezialisierung
b. Data Engineer Tools Spezialisierung
Agenda
Modul 1: Spark Grundlagen
Spark wurde im universitären AMPLab in Berkeley ersonnen und entwickelt sich seit 2013 unter dem Dach der Apache Software Foundation als defacto-Standard für nebenläufige Berechnungen rasant weiter. Kern von Spark ist eine Engine, die Daten in sogenannte RDDs (Resilient Distributed Datasets) so aufspaltet, dass diese über mehrere Knoten verteilt und parallel bearbeitet werden können, bis sie wieder zusammengeführt und erforderlichenfalls erneut aufgeteilt werden. Dieses Aufteilen und Zusammenführen wird größtmöglich im Hauptspeicher durchgeführt, weshalb die Performance von Spark deutlich höher ist als vergleichsweise in MapReduce.
In diesem einführenden Modul lernen Sie die grundlegenden Prinzipien von Spark und ihre Integration in das Hadoop Ökosystem kennen.
Modul 2: Spark Programmierung
Jedes Spark-Programm besteht aus einem zentralen Driver Program sowie zahlreichen Executor Programs, die auf den einzelnen Knoten ausgeführt werden. Es stehen verschiedene Schnittstellen zur Verfügung, um Spark-Programme in Java, Scala oder Python erstellen zu können.
Aufbauend auf dem Grundkonzept, welches für alle Sprachen gleich ist, wird ein Überblick zu den einzelnen Sprachvarianten gegeben und auf Unterschiede eingegangen. Dabei setzen Sie eigenständig Aufgabenstellungen mit der Sprache Ihrer Wahl um. Abschließend werden die Realisierungen mit verschiedenen Sprachen diskutiert.
Modul 3: Spark Tools
Die Liste der verfügbaren Werkzeuge für die Entwicklung und Ausführung von Spark-Programmen ist lang und reicht von (interaktiven) Shell-Tools bis zur mächtigen Spark-Plattform von Databricks.
In diesem Modul lernen Sie die interaktiven Shells in Hadoop für Scala und Python kennen, wenden webbasierte Notebooks wie Zeppelin und Jupyter an, nutzen die Entwickler-Tools Eclipse und Visual Studio und erhalten einen Überblick zur Spark-Plattform von Databricks.
Modul 4: Spark SQL
Der Durchbruch für Spark SQL erfolgte mit der Einführung von Datasets und DataFrames, die die performante verteilte Verarbeitung von strukturierten Daten möglich machte. Spark SQL ist heute eine der am häufigsten eingesetzten Komponenten und ermöglicht eine SQL-basierte Verarbeitung von verteilten Daten.
Sie lernen die Konzepte von Spark SQL kennen und lösen unterschiedlichste Aufgabenstellungen zum Persistieren, Selektieren und Aggregieren strukturierter Daten ein einer verteilten Umgebung mit Hilfe von Scala.
Modul 5: Spark GraphX
GraphX ist eine Komponente in Spark, die speziell auf die Verarbeitung von Graphen ausgelegt ist. Jeder Graph besteht aus Knoten und Kanten, die wiederum durch Eigenschaften beschrieben sind. GraphX definiert sogenannte Eigenschafts-Graphen, über denen typische Graphen-Operationen ausgeführt werden können.
Sie machen sich mit den Grundprinzipien der Implementierung von GraphX vertraut und lösen exemplarische Aufgabenstellungen mit Hilfe von Python.
Modul 6: Spark Machine Learning (MLlib)
Mit Spark MLlib steht eine Bibliothek für typische Aufgabenstellungen im Data Mining bzw. Machine Learning (ML) zur Verfügung, womit beispielsweise Vorhersagemodelle für diskrete oder stetige Werte trainiert werden können.
Sie machen sich mit den Grundprinzipien der Implementierung von ML-Algorithmen in Spark vertraut und lernen verschiedene Ansätze für die Modellerstellung kennen. Der Schwerpunkt dieses Moduls liegt aber in der praktischen Umsetzung verschiedener Aufgabenstellungen durch die Teilnehmer mit Hilfe von Python.
Modul 7: SparkR
SparkR ist eine relativ junge Bibliothek in Spark, die den Bogen zwischen der frei verfügbaren Programmiersprache "R" und Spark spannt. Damit ist es grundsätzlich möglich, bestimmte rechenintensive Aktivitäten wie Aggregationen, Selektionen und Filtern in einer verteilten Umgebung mit Hilfe von Spark auszuführen. Dies kann entweder aus der Spark-Umgebung heraus initiiert werden oder aus einer beliebigen IDE (Integrated Developer Environment) für R wie beispielsweise R Studio.
Sie machen sich mit der Funktionalität von SparkR vertraut und erstellen einfache R-Programme unter Nutzung von Spark.
Modul 8: Spark Streaming
Spark Streaming ist eine Lösung, um in sogenannten Micro Batches Daten zeitnah verarbeiten zu können. Das ist zwar kein Ansatz, um im Hochgeschwindigkeitshandel bestehen zu können, aber allemal geeignet, um Daten im Sekundenbereich verarbeiten zu können. Das Konzept von Spark Streaming besteht darin, den permanenten Datenstrom in sogenannten DStreams zu portionieren und jedes dieser Pakete als Kleinststapel in der Spark Engine zu verarbeiten.
Sie machen sich mit dem Konzept von Spark Streaming vertraut und lernen, wie Daten beispielsweise aus Kafka mit Hilfe von Java verarbeitet werden können. Darüber hinaus wird auf die recht anspruchsvolle Thematik der Optimierung derartiger Anwendungen eingegangen.
Ziele
In diesem Kurs lernen Sie folgende Module kennen:
- Spark Grundlagen (Modul 1) 1 Tag
- Spark Programmierung (Modul 2) 1 Tag
- Spark Tools (Modul 3) 1 Tag
- Spark SQL (Modul 4) 1 Tag
- GraphX (Modul 5) 1 Tag
- Machine Learning (Modul 6) 2 Tage
- R (Modul 7) 1 Tag
- Streaming (Modul 8) 2 Tage
Aus diesem Komplettkurs sind einzelne Spezialkurse abgeleitet:
Zielgruppe
- (IT-)Architekt
- (IT-)Entwickler
Voraussetzungen
Praktische Erfahrung in der IT-Informationsverarbeitung erforderlich. Kenntnisse im Einsatz relationaler Datenbanken sowie Kenntnisse über Big Data werden vorausgesetzt.
Folgende Seminare und Kurse zur Auffrischung der Kenntnisse um Big Data können hilfreich sein:
1) Einstiegs-Seminare (Schwierigkeitsgrad 100)
a. Big Data Einstieg
b. Big Data Technologien, Strategien und Trends
c. Hortonworks HDP Einstieg
d. Cloudera CDH Einstieg
2) Überblicks-Seminare (Schwierigkeitsgrad 200)
a. Big Data Architekturen Überblick
b. Hadoop Datentechnologien Überblick
Folgende Kurse können darüber hinaus dieses Angebot ergänzen:
3) Vertiefungs-Kurse (Schwierigkeitsgrad 300)
a. Hadoop und Java Vertiefung
b. Hadoop und Python Vertiefung
4) Spezialisierungskurse (Schwierigkeitsgrad 400)
a. Data Scientist Tools Spezialisierung
b. Data Engineer Tools Spezialisierung
Agenda
Modul 1: Spark Grundlagen
Spark wurde im universitären AMPLab in Berkeley ersonnen und entwickelt sich seit 2013 unter dem Dach der Apache Software Foundation als defacto-Standard für nebenläufige Berechnungen rasant weiter. Kern von Spark ist eine Engine, die Daten in sogenannte RDDs (Resilient Distributed Datasets) so aufspaltet, dass diese über mehrere Knoten verteilt und parallel bearbeitet werden können, bis sie wieder zusammengeführt und erforderlichenfalls erneut aufgeteilt werden. Dieses Aufteilen und Zusammenführen wird größtmöglich im Hauptspeicher durchgeführt, weshalb die Performance von Spark deutlich höher ist als vergleichsweise in MapReduce.
In diesem einführenden Modul lernen Sie die grundlegenden Prinzipien von Spark und ihre Integration in das Hadoop Ökosystem kennen.
Modul 2: Spark Programmierung
Jedes Spark-Programm besteht aus einem zentralen Driver Program sowie zahlreichen Executor Programs, die auf den einzelnen Knoten ausgeführt werden. Es stehen verschiedene Schnittstellen zur Verfügung, um Spark-Programme in Java, Scala oder Python erstellen zu können.
Aufbauend auf dem Grundkonzept, welches für alle Sprachen gleich ist, wird ein Überblick zu den einzelnen Sprachvarianten gegeben und auf Unterschiede eingegangen. Dabei setzen Sie eigenständig Aufgabenstellungen mit der Sprache Ihrer Wahl um. Abschließend werden die Realisierungen mit verschiedenen Sprachen diskutiert.
Modul 3: Spark Tools
Die Liste der verfügbaren Werkzeuge für die Entwicklung und Ausführung von Spark-Programmen ist lang und reicht von (interaktiven) Shell-Tools bis zur mächtigen Spark-Plattform von Databricks.
In diesem Modul lernen Sie die interaktiven Shells in Hadoop für Scala und Python kennen, wenden webbasierte Notebooks wie Zeppelin und Jupyter an, nutzen die Entwickler-Tools Eclipse und Visual Studio und erhalten einen Überblick zur Spark-Plattform von Databricks.
Modul 4: Spark SQL
Der Durchbruch für Spark SQL erfolgte mit der Einführung von Datasets und DataFrames, die die performante verteilte Verarbeitung von strukturierten Daten möglich machte. Spark SQL ist heute eine der am häufigsten eingesetzten Komponenten und ermöglicht eine SQL-basierte Verarbeitung von verteilten Daten.
Sie lernen die Konzepte von Spark SQL kennen und lösen unterschiedlichste Aufgabenstellungen zum Persistieren, Selektieren und Aggregieren strukturierter Daten ein einer verteilten Umgebung mit Hilfe von Scala.
Modul 5: Spark GraphX
GraphX ist eine Komponente in Spark, die speziell auf die Verarbeitung von Graphen ausgelegt ist. Jeder Graph besteht aus Knoten und Kanten, die wiederum durch Eigenschaften beschrieben sind. GraphX definiert sogenannte Eigenschafts-Graphen, über denen typische Graphen-Operationen ausgeführt werden können.
Sie machen sich mit den Grundprinzipien der Implementierung von GraphX vertraut und lösen exemplarische Aufgabenstellungen mit Hilfe von Python.
Modul 6: Spark Machine Learning (MLlib)
Mit Spark MLlib steht eine Bibliothek für typische Aufgabenstellungen im Data Mining bzw. Machine Learning (ML) zur Verfügung, womit beispielsweise Vorhersagemodelle für diskrete oder stetige Werte trainiert werden können.
Sie machen sich mit den Grundprinzipien der Implementierung von ML-Algorithmen in Spark vertraut und lernen verschiedene Ansätze für die Modellerstellung kennen. Der Schwerpunkt dieses Moduls liegt aber in der praktischen Umsetzung verschiedener Aufgabenstellungen durch die Teilnehmer mit Hilfe von Python.
Modul 7: SparkR
SparkR ist eine relativ junge Bibliothek in Spark, die den Bogen zwischen der frei verfügbaren Programmiersprache "R" und Spark spannt. Damit ist es grundsätzlich möglich, bestimmte rechenintensive Aktivitäten wie Aggregationen, Selektionen und Filtern in einer verteilten Umgebung mit Hilfe von Spark auszuführen. Dies kann entweder aus der Spark-Umgebung heraus initiiert werden oder aus einer beliebigen IDE (Integrated Developer Environment) für R wie beispielsweise R Studio.
Sie machen sich mit der Funktionalität von SparkR vertraut und erstellen einfache R-Programme unter Nutzung von Spark.
Modul 8: Spark Streaming
Spark Streaming ist eine Lösung, um in sogenannten Micro Batches Daten zeitnah verarbeiten zu können. Das ist zwar kein Ansatz, um im Hochgeschwindigkeitshandel bestehen zu können, aber allemal geeignet, um Daten im Sekundenbereich verarbeiten zu können. Das Konzept von Spark Streaming besteht darin, den permanenten Datenstrom in sogenannten DStreams zu portionieren und jedes dieser Pakete als Kleinststapel in der Spark Engine zu verarbeiten.
Sie machen sich mit dem Konzept von Spark Streaming vertraut und lernen, wie Daten beispielsweise aus Kafka mit Hilfe von Java verarbeitet werden können. Darüber hinaus wird auf die recht anspruchsvolle Thematik der Optimierung derartiger Anwendungen eingegangen.