Podcast
Questions and Answers
Ist Apache Spark ideal für Batch-Verarbeitung großer Datensätze?
Ist Apache Spark ideal für Batch-Verarbeitung großer Datensätze?
False (B)
Welche der folgenden Aussagen beschreibt am besten den Fokus von Hadoop?
Welche der folgenden Aussagen beschreibt am besten den Fokus von Hadoop?
Welche zwei Data Mining Tools werden oft mit 'Interactive Data Mining' in Verbindung gebracht?
Welche zwei Data Mining Tools werden oft mit 'Interactive Data Mining' in Verbindung gebracht?
R und Python
Was ist das Hauptziel der logistischen Regression?
Was ist das Hauptziel der logistischen Regression?
Signup and view all the answers
DataFrames sind eine höhere Abstraktionsebene im Vergleich zu...
DataFrames sind eine höhere Abstraktionsebene im Vergleich zu...
Signup and view all the answers
Nenne drei Operationen, die mit RDDs durchgeführt werden können.
Nenne drei Operationen, die mit RDDs durchgeführt werden können.
Signup and view all the answers
Im Gegensatz zu RDDs enthalten Dataframes keine Schemainformationen über die Daten.
Im Gegensatz zu RDDs enthalten Dataframes keine Schemainformationen über die Daten.
Signup and view all the answers
Welche der folgenden ist keine Core Komponente im Spark Ökosystem?
Welche der folgenden ist keine Core Komponente im Spark Ökosystem?
Signup and view all the answers
In welcher Programmiersprache wurde Spark hauptsächlich geschrieben?
In welcher Programmiersprache wurde Spark hauptsächlich geschrieben?
Signup and view all the answers
RDDs werden sofort erzeugt und berechnet.
RDDs werden sofort erzeugt und berechnet.
Signup and view all the answers
Spark kann RDDs aus jeder Datei erzeugen, die in ______ gespeichert ist.
Spark kann RDDs aus jeder Datei erzeugen, die in ______ gespeichert ist.
Signup and view all the answers
Für was steht die Abkürzung 'RDD'?
Für was steht die Abkürzung 'RDD'?
Signup and view all the answers
Was sind die Vorteile von MongoDB gegenüber traditionellen relationalen Datenbanken?
Was sind die Vorteile von MongoDB gegenüber traditionellen relationalen Datenbanken?
Signup and view all the answers
Im Gegensatz zu relationalen Systemen ist MongoDB ein Key-Value Store.
Im Gegensatz zu relationalen Systemen ist MongoDB ein Key-Value Store.
Signup and view all the answers
Welches Datenformat wird von MongoDB zur Darstellung von Dokumenten verwendet?
Welches Datenformat wird von MongoDB zur Darstellung von Dokumenten verwendet?
Signup and view all the answers
Was bedeutet der Begriff 'Sharding' im Kontext von MongoDB?
Was bedeutet der Begriff 'Sharding' im Kontext von MongoDB?
Signup and view all the answers
Ein MongoDB-Dokument kann verschachtelte Dokumente und Arrays enthalten.
Ein MongoDB-Dokument kann verschachtelte Dokumente und Arrays enthalten.
Signup and view all the answers
Was ist das Hauptziel des Elastic Stack?
Was ist das Hauptziel des Elastic Stack?
Signup and view all the answers
Nennen Sie die drei Hauptkomponenten des Elastic Stack.
Nennen Sie die drei Hauptkomponenten des Elastic Stack.
Signup and view all the answers
REST-Verben werden bei Datenbanken verwendet.
REST-Verben werden bei Datenbanken verwendet.
Signup and view all the answers
______ ist eine Schnittstelle zur CouchDB.
______ ist eine Schnittstelle zur CouchDB.
Signup and view all the answers
Flashcards
Cassandra
Cassandra
Ein verteiltes NoSQL-Datenbankmanagementsystem mit hohem Durchsatz.
Hive
Hive
Ein Data Warehousing-System für Hadoop zur Analyse von großen Datenmengen.
Apache Spark
Apache Spark
Ein Framework zur schnellen Datenverarbeitung in Echtzeit oder asynchron.
RDD (Resilient Distributed Dataset)
RDD (Resilient Distributed Dataset)
Signup and view all the flashcards
MapReduce
MapReduce
Signup and view all the flashcards
Micro-Batches
Micro-Batches
Signup and view all the flashcards
SparkSession
SparkSession
Signup and view all the flashcards
Transformationen
Transformationen
Signup and view all the flashcards
Aktionen
Aktionen
Signup and view all the flashcards
Logistische Regression
Logistische Regression
Signup and view all the flashcards
DataFrames
DataFrames
Signup and view all the flashcards
PySpark
PySpark
Signup and view all the flashcards
Spark Streaming
Spark Streaming
Signup and view all the flashcards
Hadoop
Hadoop
Signup and view all the flashcards
MongoDB
MongoDB
Signup and view all the flashcards
Indexierung in MongoDB
Indexierung in MongoDB
Signup and view all the flashcards
CouchDB
CouchDB
Signup and view all the flashcards
Elasticsearch
Elasticsearch
Signup and view all the flashcards
Kibana
Kibana
Signup and view all the flashcards
SQL
SQL
Signup and view all the flashcards
Datenpipeline
Datenpipeline
Signup and view all the flashcards
Parquet
Parquet
Signup and view all the flashcards
Data Mining
Data Mining
Signup and view all the flashcards
Machine Learning
Machine Learning
Signup and view all the flashcards
Distributed Computing
Distributed Computing
Signup and view all the flashcards
GraphX
GraphX
Signup and view all the flashcards
Study Notes
Cassandra und Hive/Pig
- Cassandra zusammen mit Hive/Pig ist quasi nur noch kommerziell nutzbar.
- Die DataStax-Enterprise Edition bindet Cassandra an Hive an.
- Dies ermöglicht die Auswertung mit DW-Werkzeugen.
- MapReduce-Lösungen sind rückläufig.
- Apache Spark bietet eine neue Möglichkeit, auch über einen Opensource-Connector für Cassandra zu verfügen.
- https://github.com/datastax/spark-cassandra-connector
Hadoop
- Hadoop konzentriert sich auf große Datensätze mittels Batch-Verarbeitung.
- Die Architektur besteht aus verschiedenen Komponenten:
- Application
- Data Processing
- Storage
- Infrastructure
- Hadoop fokussiert auf die Verarbeitung großer Datenmengen über Batch-Prozesse.
Bisheriges Modell
- Das bisherige Modell transformiert Daten von dauerhaftem Speicher zu dauerhaftem Speicher.
- Es nutzt ein MapReduce-Verfahren.
Wo liegt das Problem?
- MapReduce-Workflows (azyklische Abarbeitung von Daten) stoßen beim permanenten Zwischenspeichern an Grenzen.
- Iterative Algorithmen, wie sie im maschinellen Lernen oft eingesetzt werden, werden nicht optimal unterstützt.
- Interaktive Data Mining Tools (z.B. R, Python) sind ebenfalls nicht optimal mit dem bisherigen Modell kompatibel.
- Apache Spark adressiert diese Probleme.
Die Evolution
- Der zeitliche Ablauf von Schlüsselentwicklungen im Bereich der Datenverarbeitung: Einführung von MapReduce, Hadoop und Apache Spark im Verlauf der Jahre.
Apache Spark
- Organisationen, die sich mit Big Data-Herausforderungen auseinandersetzen, sollten Spark aufgrund seiner in-memory Performance und der breiten Modellpalette in Betracht ziehen.
- Spark unterstützt fortgeschrittene Analyselösungen auf Hadoop-Clustern, einschließlich des iterativen Modells, das für maschinelle Lern- und Graphanalysen notwendig ist.
- Gartner, Advanced Analytics and Data Science (2014).
- spark.apache.org
Ideen von Spark
- Verarbeitung möglichst im Speicher liegender Daten.
- Vermeidung des Zwischenspeicherns auf Platte, wenn möglich.
- Datenspeicherung im Cache für mehrmaligen Zugriff möglich (Machine Learning).
- Kompatibilität mit Hadoops Map-Reduce (YARN) und die Anbindung an Cassandra.
- Verallgemeinerung von Map&Reduce-Konzepten.
- Ermöglichung von Echtzeit-nahen Anwendungen durch Micro-Batches (Streaming).
- Spark wurde in Scala geschrieben, eine Sprache, die Java-Klassen leicht integrieren kann (Scala-Klassen sind JVM-Klassen).
- Tolle Integration in Python durch PySpark
Datenabstraktion: Resilient Distributed Datasets (RDDs)
- Operationen auf unveränderlichen, parallelen Datenstrukturen.
- Diese Datenstrukturen werden im Arbeitsspeicher gehalten.
- Parallelität durch Partitionierung der Daten.
- Partitionierung auf der Basis von Keys im Datensatz (Hash oder range partitioning).
- Fehlertoleranz durch Wiederholung von Operationen (Lazy).
- RDDs werden erst erzeugt, wenn eine Aktion ausgeführt wird.
Spark Essentials: RDD
- Spark kann RDDs aus Dateien erstellen, die in HDFS oder anderen von Hadoop unterstützten Systemen gespeichert sind (z. B. lokales Dateisystem, Amazon S3, Hypertable, HBase).
- Spark unterstützt Textdateien, SequenceFiles und andere Hadoop InputFormate und kann auch Verzeichnisse oder Glob verwenden (z. B. /data/201404*).
SparkContext
- Einstieg in die Spark-Funktionalität.
- In der Spark-Shell gibt es die Variable SC.
- Mit dem Context wird die Ausführungsumgebung und deren Parameter spezifiziert.
- Beispiele für Python Parameter-Spezifikation mit SparkContext.
Ein Beispiel-Job
- Optimierung von Spark-Jobs.
- Transformationen auf einem cache-RDD werden einmal berechnet und gespeichert.
- Actions werden direkt ausgeführt und sorgen für Resultate.
- Ohne Actions haben Transformationen keinen Sinn.
Arbeiten mit Key-Value Paaren
- Python, Scala und Java Syntax für key-value Paar-Arbeit in Spark.
Transformationen Von RDDs
- Beispiele für die einfache Erstellung von parallelen RDDs.
- Beispiele für ReduceByKey, groupByKey und sortByKey.
RDD-Ketten
- Jedes RDD-Objekt verwaltet auch Hinweise auf seine Historie.
- Verlorene Partitionen können durch Wiederholung wiederhergestellt werden.
Beispiel: Logistische Regression
- Ziel: Finde die am besten geeignete Trennlinie zwischen zwei Punktmengen.
Beispiel: Logistische Regression nach dem Stochastic Gradient Descent (SGD) Verfahren
- Verfahren zur iterativen Optimierung und Gewichtung bei logistischen Regressionen.
Beispiel: Logistische Regression
- Zusammenfassung des Ziels der Methode und grafische Darstellung der Ergebnisse.
Beispiel: Logistische Regression
- Vergleiche zwischen log. Regression und linearer log. Regression, und die Funktionsform der logistischen Funktion.
Beispiel: Logistische Regression
- Mathematische Darstellung der logistischen Funktion.
Beispiel: Logistische Regression
- Mathematische Darstellung der logistischen Regression.
Hinweis: Es geht auch viel einfacher mit Spark
- PySpark DataFrames bieten eine höhere Abstraktionsebene als RDDs.
- Sie vereinfachen die Verarbeitung von verteilten Daten.
- Sie haben ein Schema.
- Sie ermöglichen die Verwendung von SQL-ähnlichen Abfragen.
RDD Operationen
- Transformations-Operations (Definition neuer RDD).
- Parallele Operations/Actions (Auswertungs-Beginn).
RDD Transformationen
- Zusammenfassung der map() und flatMap() Funktionen.
RDD Transformationen in Java
- Java-Codebeispiele für die Verwendung von transformationen in Spark.
RDD Transformations
- grafische Darstellung der map() und des flatMap() Verfahrens.
RDD Transformation
- grafische Darstellung der map() und des flatMap() Verfahrens.
Beispiel: Reduce-Action
- Beispiel zur Summierung und Multiplikation von Zahlen.
- Veranschaulichungsdiagramm von Reduce-Operationen.
Beispiel: ReduceByKey-Transformation
- Erklärung der Funktionsweise von reduceByKey.
Erzeugen eines RDDs
- Mustercode zum Erstellen eines RDDs mit Datensätzen.
- Codebeispiel der join-Methode.
- Codebeispiel der cogroup-Methode
Einstellen der Parallelität
- Möglichkeit zur Steuerung der Parallelverarbeitung von Key-Value-RDD-Operationen durch Angabe der Anzahl von Tasks.
Verwendung lokaler Variablen
- Hinweise zur Verwendung von externen Variablen in Closures/Lambdas.
- Auswirkungen auf die Task-Verteilung im Cluster.
- Variablen müssen serialisierbar sein und nicht zu viel verschickt werden.
Beispiel: Log Mining (hier in Scala)
- Beispiel zur Verarbeitung von Fehlerprotokollen.
Job scheduling
- Beschreibung des Job-Scheduling-Prozesses in Spark. Aufteilung in Aufgaben.
Beispiel: Word Count
- Beispiel zur Berechnung des Wortzählens in einem Textdokument.
Einbettung in Sprachen
- Vergleich der Einbindung von Spark in Python, Scala und Java.
SparkConf
- Konfiguration von Spark, z. B. Masteradresse, App-Name, Ausführungsmodus (cluster).
Python
- Python-Codebeispiel für die Konfiguration, den Start von SparkContext und die Verarbeitung von Dateien.
PySpark DataFrames
- DataFrames – tabellenähnliche Strukturen in Spark.
- Effiziente Verarbeitung von Daten mit Optimierungen (Prädikatspushdown, Spaltenpruning).
- Integration mit Spark SQL – SQL-ähnliche Abfragen.
- Zusammenfassung der Vorteile von DataFrames gegenüber RDDs.
PySpark DataFrames eher als Panda DF?
- Vergleiche von PySpark und Panda Syntax und API-Ähnlichkeiten.
- Probleme/Einschränkungen bei Verwendung von Pandas-ähnlichen Methoden auf PySpark DataFrames.
Spark Streaming
- Einführung in Spark Streaming und Verwendung in Echtzeit-Datenverarbeitung.
Motivation
- Darstellung von Anwendungsfällen für die Verarbeitung von Daten in Echtzeit.
Spark Streaming
- Spark-Streaming-Framework für Datenverarbeitung und Verarbeitung in Echtzeit.
Spark Streaming
- Skalierung und Integration mit Spark.
- Möglichkeiten zur Verarbeitung von Daten aus verschiedenen Quellen (Kafka, Flume, Twitter, ZeroMQ, Kinesis).
Wie arbeitet Spark Streaming?
- Beschreibung des Funktionsablaufs von Spark Streaming (Batch-Verarbeitung).
Discretized Stream Processing
- Arbeitsweise von Spark Streaming durch Multiplikation von mini Batch-Jobs.
Beispiel - Hole die aktuellen Hashtags von Twitter
- Beispiel zu Verarbeitung von Datenströmen.
Das Spark-Ökosystem
- Übersicht über den Spark-Stack.
- Darstellung der verschiedenen Komponenten und ihrer Beziehung.
Spark Workflow
- Arbeitsweise und Architektur.
- Laufzeit und Cluster-Management.
- Beschreibung der verschiedenen Komponenten (Driver, Executor, Cluster Manager).
Spark SQL
- Verarbeitung von strukturierten und semi-strukturierten Daten in SQL.
- Benutzung von RDDs und DataFrames für die Verarbeitung im Cluster.
Spark SQL erlaubt auch die direkte Verwendung von SQL-Statements!
- Übersicht über die direkte SQL-Unterstützung in Spark-DataFrames.
- Einsatz von registerTempTable oder createOrReplaceTempView um DataFrames zu registrieren.
Spark SQL Action
- Zusammenfassung verschiedener Spark SQL Aktionen und deren Nutzen.
Arbeiten mit CSV-Dateien
- Anweisungen für die Verarbeitung von CSV-Dateien mit Spark.
- Konvertierung zu Spark-DataFrames.
- Speichern als Parquet-Dateien.
Der Apache Spark Stack
- Übersicht der zentralen Komponenten innerhalb des Apache Spark Stacks.
MLlib
- Darstellung der Maschine-Learning Bibliothek innerhalb des Apache Spark Stacks.
MLlib
- Übersicht über die verschiedenen Algorithmen und Verfahren in der MLlib.
MongoDB
- Einführung und Übersicht.
- Positionierung zwischen Key-Value und RDBMS-Systemen.
- Dokumentorientierte Architektur.
- Implementiert in C++.
Kein Key-Value Store
- MongoDB-Funktionen für semi-strukturierte und JSON-basierte Daten.
- Map/Reduce, Sharding, GridFS und Index-Unterstützung.
Mongo Document
- Beschreibung der Dateneinheit in einer MongoDB DB.
MongoDB Dokument
- Primärer Key einer MongoDB-Dateneinheit und Erzeugung.
Warum JSON-Dokumente?
- Erklärung der JSON-Darstellung und deren Vorteile im Kontext von CouchDB und der Web-Architektur.
MongoDB Data Model
- Schemafreie Darstellung des MongoDB-Datenmodells.
MongoDB Data Model
- Erläuterung der Organisation von Daten in MongoDB durch Collections.
MongoDB Indexing
- Index-Funktionalitäten.
- Verwendung von B-Bäumen.
Beispielmodell
- Modell eines Blogs.
- Beziehung zwischen Autor, Post(en) und Kommentaren (JSON).
Wie sollte man dies nicht in Mongo abbilden?
- Beispielhafte, falsche Verwendung von IDs für Dokumente.
Besser: Embedded Documents!
- Vorteile der Verwendung eingebetteter Objekte (Dokumente).
- Verbesserung bzgl. der Lesbarkeit / Datenverwaltung.
Vorteile
- Vorteile und Nutzung des lokalen Speichers.
- Beseitigung der Notwendigkeit von Joins.
MongoDB Skalierung
- Skalierungsmechanismen in MongoDB.
MongoDB Replication
- Beschreibung der MongoDB Replication Architektur.
Arbeiten mit MongoDB
- Interaktion mit der MongoDB Shell (dot Notation).
MongoDB Usage
- Vergleich von SQL- und MongoDB-Syntax beim Erstellen und Abfragen.
SQL-to-MongoDB-Mapping
- Umwandlung von SQL-Abfragen und -Statements in äquivalente MongoDB-Anweisungen.
Map&Reduce und Java API
- Dokumentation über die Integration von MapReduce und Java-API in MongoDB Anwendungen.
Sperren
- Verwendung von Sperren in MongoDB bei Aktualisierungen.
- Implementierung von Sperren ab Version 2.2.
Sperren For Wired Tiger
- Beschreibung des Sperrsystems in MongoDB mittels Wired Tiger.
- Optimistische Konzepte.
CouchDB
- Einführung in die CouchDB-Datenbank.
- JSON-basierte Datenrepräsentation.
- REST-orientiertes Abfragemuster (Map/Reduce).
REST-Verben
- Übersicht der REST-Verben (GET, POST, PUT, DELETE, COPY).
SQL vs. CouchDB-REST
- Kurz vergleichende Tabelle von SQL-Statements und dem entsprechenden REST equivalent.
HTTP Status Codes
- Beschreibung der HTTP-Status-Codes für REST-APIs.
Curl als Schnittstelle zur CouchDB
- Curl zum Testen der CouchDB-Funktionalität.
Curl Command – Datenbank-API
- Befehle zur Interaktion mit der CouchDB-API (z. B. Datenbanken anzeigen, erstellen und löschen).
Curl Command – Document-API
- Befehle zum Erstellen, Abrufen und Bearbeiten von Dokumenten sowie attachments.
Logstash, Elasticsearch und Kibana
- Darstellung der Komponenten und Funktionen.
- Datenfluss im System.
Der Elasticsearch ELK Softwarestack
– Komponenten und Arbeitsweise des Elasticsearch-Stacks (E, L, K).
Der Elasticsearch ELK Softwarestack
- Detaillierter Workflow des ELK-Stacks, inklusive Datenfluss durch die verschiedenen Komponenten.
Ein komplexes Szenario: Alibaba Cloud
- Komplexes Architekturmodell für Datenverarbeitung.
- Zusammenhang zwischen den Komponenten (Logstash, Elasticsearch, Kibana, etc.).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.