Pipeline-Leistung – Übersicht

Auf dieser Seite werden die grundlegende Terminologie und Konzepte der Pipelineverarbeitung in Cloud Data Fusion erläutert.

Die Pipelineleistung hängt von den folgenden Aspekten ab:

  • Die Größe und Eigenschaften Ihrer Daten
  • Struktur Ihrer Pipeline
  • Größenanpassung bei Clustern
  • Von der Cloud Data Fusion-Pipeline verwendete Plug-ins

Terminologie für die Pipelineverarbeitung in Cloud Data Fusion

Die folgende Terminologie gilt für die Pipelineverarbeitung in Cloud Data Fusion.

Maschinentyp
Art der verwendeten virtuellen Maschinen (VMs) (CPU, Arbeitsspeicher).
Cluster
Eine Gruppe von VMs, die gemeinsam umfangreiche Datenverarbeitungsaufgaben ausführen.
Master- und Worker-Knoten
Physische oder virtuelle Maschinen, die Daten verarbeiten können. Masterknoten koordinieren in der Regel die Arbeit. Auf Worker-Knoten werden Executors ausgeführt, die Daten verarbeiten. Sie haben Maschineneigenschaften (Größe des Arbeitsspeichers und Anzahl der für Prozesse verfügbaren vCores).
vCores, Kerne oder CPUs
Eine Ressource, die für die Datenverarbeitung zuständig ist. Normalerweise stellen Ihre Knoten eine bestimmte Anzahl von Kernen bereit und Ihre Executors fordern eine oder einige CPUs an. Gleichen Sie dies mit dem Arbeitsspeicher ab, da Sie Ihren Cluster sonst zu wenig nutzen.
Treiber
Eine einzelne VM, die als zentraler Koordinator für den gesamten Cluster fungiert. Es verwaltet Aufgaben, plant die Arbeit über Worker-Knoten hinweg und überwacht den Jobfortschritt.
Executors
Mehrere VMs, die gemäß den Anweisungen des Treibers die eigentlichen Datenverarbeitungsaufgaben ausführen. Die Daten werden zur parallelen Verarbeitung partitioniert und auf diese Executors verteilt. Sie müssen genügend Splits haben, um alle Executors nutzen zu können.
Splits oder Partitionen
Ein Dataset wird in Splits (andere Namenspartitionen) aufgeteilt, um Daten parallel zu verarbeiten. Wenn nicht genügend Splits vorhanden sind, können Sie nicht den gesamten Cluster nutzen.

Leistungsoptimierung – Übersicht

Pipelines werden auf Clustern von Maschinen ausgeführt. Wenn Sie Cloud Data Fusion-Pipelines auf Dataproc-Clustern ausführen (der empfohlene Bereitsteller), wird im Hintergrund YARN (Yet Another Resource Negotiator) verwendet. Dataproc nutzt YARN für die Ressourcenverwaltung im Cluster. Wenn Sie eine Cloud Data Fusion-Pipeline an einen Dataproc-Cluster senden, nutzt der zugrunde liegende Apache Spark-Job YARN für die Ressourcenzuweisung und Aufgabenplanung.

Ein Cluster besteht aus Master- und Worker-Knoten. Master-Knoten sind im Allgemeinen für die Koordination der Arbeit verantwortlich, während Worker-Knoten die eigentliche Arbeit ausführen. Cluster haben normalerweise eine kleine Anzahl von Master-Knoten (ein oder drei) und eine große Anzahl von Workern. YARN wird als System zur Koordination der Arbeit verwendet. YARN führt einen Resource Manager-Dienst auf dem Masterknoten und einen Node Manager-Dienst auf jedem Worker-Knoten aus. Ressourcenmanager koordinieren sich unter allen Knotenmanagern, um zu bestimmen, wo Container im Cluster erstellt und ausgeführt werden.

YARN Resource Manager und Node Manager

Auf jedem Worker-Knoten reserviert der Knotenmanager einen Teil des verfügbaren Maschinenarbeitsspeichers und der verfügbaren CPUs für die Ausführung von YARN-Containern. Beispiel: Wenn Ihre Worker-Knoten in einem Dataproc-Cluster n1-standard-4-VMs (4 CPUs, 15 GB Arbeitsspeicher) sind, reserviert jeder Knotenmanager 4 CPUs und 12 GB Arbeitsspeicher für die Ausführung von YARN-Containern. Die verbleibenden 3 GB Speicher verbleiben für die anderen Hadoop-Dienste, die auf dem Knoten ausgeführt werden.

Wenn eine Pipeline unter YARN ausgeführt wird, startet sie einen Pipeline-Workflow-Treiber, einen Spark-Treiber und viele Spark-Executors in Dataproc.

Treiber und Executors

Der Workflow-Treiber ist für das Starten des oder mehrerer Spark-Programme verantwortlich, aus denen eine Pipeline besteht. Der Workflow-Treiber ist in der Regel wenig hilfreich. Jedes Spark-Programm führt einen einzelnen Spark-Treiber und mehrere Spark-Executors aus. Die Treiberkoordinaten arbeiten zwischen den Executors, führen jedoch normalerweise keine eigentliche Arbeit aus. Die eigentliche Arbeit wird größtenteils von den Spark-Executors ausgeführt.

Nächste Schritte