Kennenlernen von Apache Spark

Abgeschlossen

Apache Spark ist ein Framework für die verteilte Datenverarbeitung, das durch die Koordinierung der Arbeit über mehrere Verarbeitungsknoten in einem Cluster entsprechende Datenanalysen im großen Stil ermöglicht.

Funktionsweise von Spark

Apache Spark-Anwendungen werden als unabhängige Gruppen von Prozessen in einem Cluster ausgeführt und vom SparkContext-Objekt in Ihrem Hauptprogramm (dem so genannten Treiberprogramm) koordiniert. Der SparkContext stellt eine Verbindung mit dem Cluster-Manager her, der mithilfe einer Implementierung von Apache Hadoop YARN die Zuordnung von Ressourcen zu Anwendungen vornimmt. Sobald die Verbindung hergestellt ist, ruft Spark Executors auf den Knoten des Clusters ab, um Ihren Anwendungscode auszuführen.

Der SparkContext führt die Hauptfunktion und parallele Vorgänge auf den Clusterknoten aus und sammelt dann die Ergebnisse der Vorgänge. Die Knoten lesen und schreiben Daten aus dem und in das Dateisystem und speichern die umgewandelten Daten im Speicher als robuste verteilte Datasets (Resilient Distributed Datasets, RDDs) zwischen.

A diagram of Azure Synapse Apache Spark architecture.

Der SparkContext ist für die Konvertierung von Anwendungen in gerichtete azyklische Graphen (Directed Acyclic Graph, DAG) verantwortlich. Der Graph setzt sich aus einzelnen Aufgaben zusammen, die im Rahmen eines Executor-Prozesses auf den Knoten ausgeführt werden. Jede Anwendung erhält ihre eigenen Executor-Prozesse, die über die gesamte Anwendungsdauer aktiv bleiben und Aufgaben in mehreren Threads ausführen.

Spark-Pools in Azure Synapse Analytics

In Azure Synapse Analytics wird ein Cluster als Spark-Pool implementiert, der eine Runtime für Spark-Vorgänge bereitstellt. Sie können einen oder mehrere Spark-Pools in einem Azure Synapse Analytics-Arbeitsbereich mithilfe des Azure-Portals oder in Azure Synapse Studio erstellen. Wenn Sie einen Spark-Pool definieren, können Sie Konfigurationsoptionen für den Pool angeben, darunter:

  • Ein Name für den Spark-Pool.
  • Die Größe des virtuellen Computers (VM), der für die Knoten im Pool verwendet wird, einschließlich der Option, hardwarebeschleunigte GPU-fähige Knoten zu verwenden.
  • Die Anzahl der Knoten im Pool und ob die Poolgröße fest ist oder ob einzelne Knoten dynamisch online gestellt werden können, um den Cluster automatisch zu skalieren. In diesem Fall können Sie die minimale und maximale Anzahl aktiver Knoten angeben.
  • Die Version der Spark Runtime, die im Pool verwendet werden soll. Dies bestimmt die Versionen der einzelnen Komponenten wie Python, Java und andere, die installiert werden.

Tipp

Weitere Informationen zu den Konfigurationsoptionen für Spark-Pools finden Sie unter Konfigurationen von Apache Spark-Pools in Azure Synapse Analytics in der Azure Synapse Analytics-Dokumentation.

Spark-Pools in einem Azure Synapse Analytics-Arbeitsbereich sind serverlos – sie starten bei Bedarf und werden beendet, wenn sie sich im Leerlauf befinden.