PD Stefan Bosse - VPP - Modul J: Verteilte Systeme: Synchronisation und Gruppenkommunikation

Verteilte und Parallele Programmierung

Mit Virtuellen Maschinen

PD Stefan Bosse

Universität Bremen - FB Mathematik und Informatik

1 / 43

PD Stefan Bosse - VPP - Modul J: Verteilte Systeme: Synchronisation und Gruppenkommunikation

Verteile Systeme: Synchronisation und Gruppenkommunikation

Übergang von eng zu lose gekoppelten Systemen

Wo liegen die Unterschiede in der Prozesskommunikation zu eng gekoppelten SM Systemen?

Wie geschieht die Synchronisation bei Fehlern und Asynchronität?

2 / 43

PD Stefan Bosse - VPP - Modul J: Verteilte Systeme: Synchronisation und Gruppenkommunikation

Map & Reduce

  • Ein Web-Programmiermodell für die skalierbare Datenverarbeitung in großen Clustern über große Datenmengen basierend auf impliziter Master-Worker Gruppenkommunikation (aber via peer-to-peer Nachrichten).
  • Das Modell wird häufig in Web-Scale-Search- und Cloud-Computing-Anwendungen eingesetzt.
  • Aber auch funktionale und parallele Programmierung macht von MapReduce Methoden Gebrauch
  • Methode:

    • Es wird eine Map-Funktion angegeben, um eine Gruppe von Schlüssel/Wert-Zwischenpaaren zu generieren.
    • Dann wird eine Reduce-Funktion auf diesen Paaren angewendet, um alle Zwischenwerte mit demselben Zwischenschlüssel zusammenzuführen.
  • MapReduce ist hochgradig skalierbar, um hohe Parallelitätsgrade auf verschiedenen Arbeitsebenen zu erreichen.

3 / 43

PD Stefan Bosse - VPP - Modul J: Verteilte Systeme: Synchronisation und Gruppenkommunikation

Map & Reduce

  • Ein typischer MapReduce-Berechnungsprozess kann Terabytes an Daten auf Zehntausenden oder mehr Client-Computern verarbeiten. Hunderte von MapReduce-Programmen können gleichzeitig ausgeführt werden.
    • Tatsächlich werden jeden Tag Tausende von MapReduce-Jobs in Clustern von Google ausgeführt.
    • Das Hadoop Framework bietet für WEB Anwendungen MapReduce Services an → Master-Slave Architektur!

Die Map-Funktion verarbeitet ein Paar (Schlüssel, Wert) und gibt eine Liste von Zwischenpaaren (Schlüssel, Wert) zurück:

map(k1,v1)list(k2,v2)

Die Reduzierungsfunktion führt alle Zwischenwerte zusammen, die die gleichen Zwischenschlüssel haben:

reduce(k2,list(v2))  list(v3)

4 / 43

PD Stefan Bosse - VPP - Modul J: Verteilte Systeme: Synchronisation und Gruppenkommunikation

Map & Reduce