Apache Spark-Cluster im Manager-/Worker-Modus bereitstellen
Apache Spark ist ein Open-Source-Cluster-Computing-Framework für Datenanalysen. Oracle Cloud Infrastructure bietet eine zuverlässige, leistungsstarke Plattform zum Ausführen und Verwalten Ihrer Apache Spark-basierten Big Data-Anwendungen.
Architektur
Diese Architektur stellt ein Apache Spark-Cluster auf Oracle Cloud Infrastructure mit dem Manager/Worker-Modell bereit. Es verfügt über einen Managerknoten und drei Worker-Knoten, die auf Compute-Instanzen ausgeführt werden.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Abbildung fun-oci-png.png
Die Architektur verfügt über folgende Komponenten:
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Rechenzentrum (Availability-Domains) enthält. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).
- Availability-Domain
Availability-Domains sind eigenständige unabhängige Rechenzentren innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain werden von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz bietet. Availability-Domains teilen keine Infrastruktur wie Strom oder Kühlung oder das interne Availability-Domainnetzwerk. Ein Fehler bei einer Availability-Domain wirkt sich daher unwahrscheinlich auf die anderen Availability-Domains in der Region aus.
- Fault-Domain
Eine Faultdomain ist eine Gruppierung von Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain verfügt über drei Faultdomains mit unabhängiger Power und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physischen Serverausfall, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region eingerichtet haben. Wie herkömmliche Rechenzentrumsnetze geben VCNs Ihnen die vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere nicht überlappende CIDR-Blöcke enthalten, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die für eine Region oder eine Availability-Domain Geltungsbereich haben können. Jedes Subnetz besteht aus einem zusammenhängenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
- Apache Spark-Manager und Mitarbeiter
Die Compute-Instanz, die den Apache Spark-Manager hostet, ist einem regionalen öffentlichen Subnetz zugeordnet. Die Arbeitnehmer sind an ein regionales privates Subnetz angeschlossen.
- Block Storage
Mit Block Storage Volumes können Sie Speicherdatenträger erstellen, anhängen, verbinden und verschieben und die Volume-Performance ändern, um Ihre Speicher-, Performance- und Anwendungsanforderungen zu erfüllen. Nachdem Sie einen Datenträger an eine Instanz angehängt und verbunden haben, können Sie den Datenträger wie eine normale Festplatte verwenden. Sie können auch einen Datenträger trennen und an eine andere Instanz anhängen, ohne Daten zu verlieren.
Die Terraform Schnellstartvorlage, die für diese Architektur bereitgestellt wurde, stellt einen 700-GB-Blockdatenträger für jeden Worker-Knoten bereit. Beim Deployment der Architektur können Sie die Anzahl und Größe der Blockdatenträger auswählen.
Die Architektur verwendet iSCSI, einen TCP/IP-basierten Standard, für die Kommunikation zwischen den Volumes und den angeschlossenen Instanzen.
- Internetgateway
Das Internetgateway ermöglicht den Datenverkehr zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- Network Address Translation-(NAT-)Gateway
Ein NAT-Gateway ermöglicht privaten Ressourcen in einem VCN den Zugriff auf Hosts im Internet, ohne dass diese Ressourcen für eingehende Internetverbindungen freigegeben werden.
Empfehlungen
Ihre Anforderungen können von der hier beschriebenen Architektur abweichen. Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt.
- VCN
Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze in VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich innerhalb des standardmäßigen privaten IP-Adressraums befinden.
Wählen Sie CIDR-Blöcke, die sich nicht mit einem anderen Netzwerk überschneiden (in Oracle Cloud Infrastructure, Ihrem On-Premise-Rechenzentrum oder einem anderen Cloud-Provider), zu dem Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die CIDR-Blöcke ändern, hinzufügen und entfernen.
Wenn Sie die Subnetze entwerfen, berücksichtigen Sie Ihre Verkehrsfluss- und Sicherheitsanforderungen. Ordnen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz zu, das als Sicherheitsgrenze dienen kann.
Verwenden Sie regionale Subnetze.
- Rechenleistungseinheiten
Diese Architektur verwendet ein Oracle Linux 7.7-Betriebssystemimage mit VM.Standard2.1-Form für Manager- und Worker-Knoten. Wenn Ihre Anwendung mehr Speicher, Kerne oder Netzwerkbandbreite benötigt, können Sie eine andere Form wählen.
- Apache Spark und Hadoop
Obwohl Apache Spark alleine ausgeführt werden kann, wird er in dieser Architektur auf Hadoop ausgeführt.
In dieser Architektur werden ein einzelner Managerknoten und drei Worker-Knoten im Apache Spark-Cluster bereitgestellt.
- Sicherheit
-
Mit Oracle Cloud Guard können Sie die Sicherheit Ihrer Ressourcen in Oracle Cloud Infrastructure proaktiv überwachen und verwalten. Cloud Guard verwendet Detektorrezepte, die Sie definieren können, um Ihre Ressourcen auf Sicherheitsschwächen zu untersuchen und Operatoren und Benutzer auf risikoreiche Aktivitäten zu überwachen. Wenn eine Fehlkonfiguration oder unsichere Aktivität erkannt wird, empfiehlt Cloud Guard Korrekturmaßnahmen und unterstützt Sie bei der Durchführung dieser Aktionen, basierend auf Antwortrezepten, die Sie definieren können.
-
Für Ressourcen, die maximale Sicherheit erfordern, empfiehlt Oracle, Sicherheitszonen zu verwenden. Eine Sicherheitszone ist ein Compartment, das einem von Oracledefinierten Rezept von Sicherheits-Policys zugeordnet ist, die auf Best Practices basieren. Beispielsweise dürfen die Ressourcen in einer Sicherheitszone nicht über das öffentliche Internet zugänglich sein und müssen mit kundenverwalteten Schlüsseln verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure die Vorgänge für die Policys im Rezept der Sicherheitszone und verweigert Vorgänge, die gegen eine der Policys verstoßen.
-
Überlegungen
- Performance
Verwenden Sie Bare-Metal-Formen für Compute-Instanzen für Manager- und Worker-Knoten. Sie können erhebliche Performancevorteile erzielen, indem Sie Big Data-Anwendungen auf einem Bare-Metal-Spark-Cluster ausführen.
- Verfügbarkeit
Fault-Domains bieten die beste Resilienz innerhalb einer einzelnen Availability-Domain. Sie können Compute-Instanzen bereitstellen, die dieselben Aufgaben in mehreren Availability-Domains ausführen. Dieses Design entfernt einen einzigen Fehlerpunkt, indem Redundanz eingeführt wird.
Sie können auch erwägen, einen zusätzlichen Spark Managerknoten als Backup für hohe Verfügbarkeit zu erstellen.
- Skalierbarkeit
Sie können Ihre Anwendung mithilfe des Instanzpools und der automatischen Skalierungsfunktionen skalieren.
- Mit Instanzpools können Sie mehrere Compute-Instanzen basierend auf derselben Konfiguration innerhalb derselben Region bereitstellen und erstellen.
- Mit der automatischen Skalierung können Sie die Anzahl der Compute-Instanzen in einem Instanzpool basierend auf Performancemetriken wie CPU-Auslastung automatisch anpassen.
- Speicherung
Mit Oracle Cloud Infrastructure Object Storage können Sie die Daten anstelle von Block-Volumes speichern. Wenn Sie Objektspeicher verwenden, erstellen Sie ein Servicegateway für die Konnektivität von Knoten in privaten Subnetzen.
Oracle bietet auch den Hadoop Distributed File System (HDFS) Connector für Oracle Cloud Infrastructure Object Storage. Mit dem HDFS-Connector können Ihre Apache Hadoop-Anwendungen Daten in und aus dem Objektspeicher lesen und schreiben.
- Verwaltbarkeit
Diese Architektur verwendet Terraform, um die Infrastruktur zu erstellen und das Spark-Cluster bereitzustellen.
Stattdessen können Sie den vollständig verwalteten Service Oracle Cloud Infrastructure Data Flow verwenden, der eine reiche Benutzeroberfläche bietet, damit Entwickler und Datenwissenschaftler Apache Spark-Anwendungen in jeder Skala erstellen, bearbeiten und ausführen können, ohne dass Cluster, ein Operationsteam oder hochspezialisierte Spark-Kenntnisse benötigt werden. Als voll verwalteter Service gibt es keine Infrastruktur, die bereitgestellt oder verwaltet werden kann.
- Sicherheit
Mit Policys können Sie einschränken, wer auf Ihre Oracle Cloud Infrastructure-Ressourcen zugreifen kann und welche Aktionen sie ausführen können.
Bereitstellen
Der für das Deployment dieser Referenzarchitektur erforderliche Code ist in GitHub verfügbar. Sie können den Code mit einem einzigen Klick in Oracle Cloud Infrastructure Resource Manager ziehen, den Stack erstellen und bereitstellen. Alternativ können Sie den Code von GitHub auf Ihren Computer herunterladen, den Code anpassen und die Architektur mit der Terraform-CLI bereitstellen.
- Mit Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf
Wenn Sie noch nicht angemeldet sind, geben Sie die Mandanten- und Benutzerzugangsdaten ein.
- Prüfen und akzeptieren Sie die Allgemeinen Geschäftsbedingungen.
- Wählen Sie den Bereich, in dem Sie den Stack bereitstellen möchten.
- Befolgen Sie die Anweisungen und Aufforderungen auf dem Bildschirm, um den Stack zu erstellen.
- Klicken Sie nach dem Erstellen des Stacks auf Terraform-Aktionen, und wählen Sie Plan aus.
- Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.
Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie dann die Aktion Plan erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden aus.
- Klicken Sie auf
- Deployment mit der Terraform-CLI:
- Gehen Sie zu GitHub.
- Klonen oder laden Sie das Repository auf Ihren lokalen Computer herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.
Änderungslog
In diesem Log werden bedeutende Änderungen aufgeführt:
27. April 2022 |
Option zum Herunterladen bearbeitbarer Versionen hinzugefügt (. SVG und . DRAWIO) des Architekturdiagramms. |
29. Januar 2021 |
|