Einführung in die Apache Spark-Architektur

Dieser Artikel beschreibt die Konzepte der Apache Spark-Architektur und ihrer Komponenten. Es wird als Datenverarbeitung auf höchstem Niveau in Apache Software Foundation angesehen. Spark wird letztendlich als eine weitere Möglichkeit für Hadoop und Map Reduce angesehen.

Spark ist eine Open-Source-Architektur mit genau definierten Komponenten, die bei der Analyse einer großen Datenmenge helfen und für verteiltes Computing geeignet sind. Spark ist in Scala mit aktivierten Funktionen wie APIs und R geschrieben und verfügt über eine Reihe erweiterter Bibliotheken, die die Datenverarbeitung vereinfachen. Apache Spark verfügt über eine individuelle Cluster-Berechnung für schnelleren Zugriff und wird auf verschiedenen Plattformen ausgeführt.

Apache Spark verfügt über eine breite Palette von Funktionen wie z. B. schnelleres Ausführen von In-Memory-Prozessen, Anpassung an mehrere Programmiersprachen, verbesserte Caching-Techniken und Unterstützung von SQL-Abfragen sowie maschinelles Lernen. Es läuft auf Plattformen wie Microsoft Windows und Linux. Laut ihrer Bereitstellung können sie auch auf einem einzelnen Computer und im Cluster-Modus ausgeführt werden.

Apache Spark-Architektur

Die Architektur von Apache Spark enthält lose gekoppelte Komponenten. Spark betrachtet den Master / Worker-Prozess in der Architektur und alle Tasks werden auf dem verteilten Hadoop-Dateisystem ausgeführt. Apache spark nutzt Hadoop für Datenverarbeitungs- und Datenspeicherungsprozesse. Sie werden als In-Memory-Datenverarbeitungsmodul betrachtet und ermöglichen, dass ihre Anwendungen auf Hadoop-Clustern schneller ausgeführt werden als ein Speicher. Die In-Memory-Verarbeitung verhindert den Ausfall von Festplatten-E / A. Mit Spark kann der heterogene Job mit denselben Daten arbeiten. Spark unterteilt seine Daten in Partitionen. Die Größe der geteilten Partitionen hängt von der angegebenen Datenquelle ab.

Nachfolgend sind die beiden Hauptimplementierungen der Apache Spark-Architektur aufgeführt:

1. Resilient Distributed Datasets (RDD)

Es ist für die Bereitstellung der API zur Steuerung von Caching und Partitionierung verantwortlich. Es ist ein wichtiges Toolset für die Datenberechnung. Es hilft bei der Neuberechnung von Elementen im Fehlerfall und gilt als unveränderliche Daten und fungiert als Schnittstelle. Transformationen und Aktionen sind die beiden von RDD ausgeführten Operationen.

2. Gerichteter azyklischer Graph (DAG)

Es bildet eine Sequenzverbindung von einem Knoten zum anderen. Der Treiber konvertiert das Programm für jeden Auftrag in DAG. Das Apache Spark Eco-System verfügt über verschiedene Komponenten wie API-Kern, Spark SQL, Streaming und Echtzeitverarbeitung, MLIB und Graph X. Einige Begriffe, die hier gelernt werden müssen, sind die Spark-Shell, die beim Lesen großer Datenmengen hilft. Abbrechen, Ausführen eines Jobs, einer Aufgabe (Arbeit), eines Jobs (Berechnung)

Komponenten der Apache Spark-Architektur

Die vier Hauptkomponenten von Spark sind nachfolgend aufgeführt und müssen für das gesamte Framework verstanden werden.

  1. Spark-Treiber
  2. Vollstrecker
  3. Cluster-Manager
  4. Arbeiterknoten

Das folgende Diagramm zeigt die Architektur und Komponenten von spark:

Abb: Standalone-Modus der Apache Spark-Architektur

Der Ausführungsablauf beginnt wie folgt:

1. Spark-Treiber

Der Fahrer ist dafür verantwortlich, die Aufgaben und die Mitarbeiter für das Management zu koordinieren. Es handelt sich um einen Application JVM-Prozess, der als Masterknoten betrachtet wird. Ein Treiber teilt den Funken in Aufgaben und Zeitpläne auf, die auf Ausführenden in den Clustern ausgeführt werden sollen. In der Abbildung rufen die Treiberprogramme die Hauptanwendung auf und erstellen einen Spark-Kontext (fungiert als Gateway). Überwachen Sie gemeinsam die Arbeit innerhalb des angegebenen Clusters und stellen Sie eine Verbindung zu einem Spark-Cluster her. Alle Funktionen und Befehle werden über den Spark-Kontext ausgeführt.

Spark-Kontext ist ein Eintrag für jede Sitzung. Der Spark-Treiber verfügt über weitere Komponenten zum Ausführen von Jobs in den Clustern. Spark-Cluster werden mit verschiedenen Arten von Cluster-Managern verbunden und der Kontext erfasst Worker-Knoten, um Daten auszuführen und zu speichern. Wenn wir den Prozess im Cluster ausführen, wird der Job in Stufen unterteilt, wobei die Gewinnstufen in geplante Aufgaben unterteilt werden.

2. Executor

Es ist für die Ausführung eines Jobs verantwortlich und speichert Daten in einem Cache. In der Anfangsphase registrieren sich die Testamentsvollstrecker bei den Fahrern. Dieser Executor verfügt über eine Reihe von Zeitfenstern, in denen die Anwendung gleichzeitig ausgeführt werden kann. Executors führen Lese- / Schreibvorgänge an externen Quellen durch. Der Executor führt den Job aus, wenn er Daten geladen hat und diese im Leerlaufmodus entfernt wurden. Der Executor wird durch dynamische Zuweisung aktiviert und sie werden abhängig von der Dauer ständig ein- und ausgeschlossen. Während der Ausführung der Aufgaben werden die Ausführenden von einem Treiberprogramm überwacht. Executoren führen die Aufgabe der Benutzer im Java-Prozess aus.

3. Cluster Manager

Es hilft bei der Verwaltung der Cluster, die einen Master und eine Anzahl von Slaves haben. Es gibt zwei Arten von Cluster-Managern wie YARN und Standalone. Beide werden von Resource Manager und Node verwaltet. Für die Clusterarbeit im Standalone-Modus sind der Spark-Master und der Arbeiterknoten als Rollen erforderlich. Die Verantwortung des Cluster-Managers liegt in der Zuweisung von Ressourcen und der Ausführung der Aufgabe.

4. Arbeiterknoten

Sie sind die Slave-Knoten; Die Hauptverantwortung besteht darin, die Aufgaben auszuführen und ihre Ausgabe an den Spark-Kontext zurückzugeben. Sie kommunizieren mit dem Masterknoten über die Verfügbarkeit der Ressourcen. Der Spark-Kontext führt ihn aus und gibt ihn an die Worker-Knoten weiter. Jedem Arbeitsknoten wurde ein Funkenarbeiter zur Überwachung zugewiesen. Sie vereinfachen die Berechnung, indem sie die Worker-Knoten (1 auf n Worker) erhöhen, sodass alle Aufgaben parallel ausgeführt werden, indem der Job in Partitionen auf mehreren Systemen aufgeteilt wird. Die andere Elementaufgabe wird als Arbeitseinheit betrachtet und einem Ausführenden zugewiesen, wobei für jeden Partitionsfunken eine Aufgabe ausgeführt wird.

Fazit

Wenn Sie Apache Spark Architecture verstehen, bedeutet dies, wie Sie Big Data auf einfache Weise implementieren können. Letztendlich haben wir ihre Zugänglichkeit und ihre Komponentenrollen gelernt, was für Cluster-Computing und Big-Data-Technologie von großem Vorteil ist. Spark berechnet die gewünschten Ergebnisse auf einfachere Weise und bevorzugt in der Stapelverarbeitung.

Die besonderen Merkmale von Spark wie Datensätze und Datenrahmen tragen zur Optimierung des Benutzercodes bei. Ein wichtiges Merkmal wie die SQL-Engine fördert die Ausführungsgeschwindigkeit und macht diese Software vielseitig. Aus diesem Grund wurden Spark-Anwendungen lokal ausgeführt oder in einem Cluster verteilt. Apache Spark wird als eine großartige Ergänzung in einer Vielzahl von Branchen wie Big Data angesehen. Zusammenfassend lässt sich sagen, dass Spark bei der Lösung von Aufgaben mit hohem Rechenaufwand hilft.

Empfohlene Artikel

Dies ist eine Anleitung zur Apache Spark-Architektur. Hier diskutieren wir die Einführung in die Apache Spark-Architektur zusammen mit den Komponenten und dem Blockdiagramm von Apache Spark. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.

  1. Spark-Shell-Befehle
  2. Apache Hadoop-Ökosystem
  3. Big Data-Architektur
  4. Was ist Apache?

Kategorie: