Pipeline-Leistung – Übersicht

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

Die Pipelineleistung hängt von den folgenden Aspekten ab:

  • Größe und Merkmale Ihrer Daten
  • Die Struktur Ihrer Pipeline
  • Größenanpassung bei Clustern
  • Plug-ins, die von Ihrer Cloud Data Fusion-Pipeline verwendet werden

Terminologie der 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 Maschinenmerkmale (Größe des Arbeitsspeichers und Anzahl der verfügbaren vCores Prozesse).
vCores, Kerne oder CPUs
Eine Ressource, die Rechenvorgänge ausführt. Normalerweise stellen Ihre Knoten eine bestimmte Anzahl von Kernen bereit und Ihre Executors fordern eine oder mehrere CPUs an. Achten Sie darauf, dass die Anzahl der Kerne mit der Größe des Arbeitsspeichers übereinstimmt, da sonst Ihr Cluster möglicherweise nicht optimal ausgelastet wird.
Treiber
Eine einzelne VM, die als zentraler Koordinator für den gesamten Cluster fungiert. Er verwaltet Aufgaben, plant die Arbeit auf Worker-Knoten und überwacht den Jobfortschritt.
Executors
Mehrere VMs, auf denen die Datenverarbeitungsaufgaben ausgeführt werden, wie vom . Ihre Daten werden zur parallelen Verarbeitung partitioniert und auf diese Executors verteilt. Um alle Executors zu nutzen, müssen Sie genügend Aufteilungen haben.
Trennlinien oder Partitionen
Ein Dataset wird in Splits (andere Namenspartitionen) aufgeteilt, um Daten parallel zu verarbeiten. Wenn Sie nicht genügend Teilungen haben, können Sie den gesamten Cluster nicht nutzen.

Leistungsoptimierung – Übersicht

Pipelines werden auf Clustern von Maschinen ausgeführt. Wenn Sie die Kampagne Cloud Data Fusion-Pipelines auf Dataproc-Clustern (die empfohlenen Bereitsteller), verwendet er YARN (Yet Another Resource Negotiator) hinter die Szenen. Dataproc nutzt YARN für die Ressourcenverwaltung in des Clusters. 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 in der Regel für die Koordination der Arbeit verantwortlich, während Worker-Knoten die eigentliche Arbeit übernehmen. Cluster haben normalerweise eine kleine Anzahl von Master-Knoten (ein oder drei) und einen einer großen Anzahl von Workern. YARN wird als Arbeitskoordinationssystem verwendet. YARN Runs einen Resource Manager-Dienst auf dem Master-Knoten und einen Node Manager-Dienst auf jedem Knoten Worker-Knoten. Die Ressourcenmanager koordinieren sich unter allen Knotenmanagern, Bestimmt, wo Container im Cluster erstellt und ausgeführt werden sollen.

YARN Resource Manager und Node Manager

Auf jedem Worker-Knoten reserviert der Knotenmanager einen Teil der verfügbaren Maschinenarbeitsspeicher und CPUs zum Ausführen von YARN-Containern. Beispiel: Auf einer Dataproc-Cluster, wenn Ihre Worker-Knoten n1-standard-4-VMs sind (4 CPUs, 15 GB Arbeitsspeicher) reserviert, reserviert jeder Node Manager 4 CPUs und 12 GB Arbeitsspeicher zum Ausführen von YARN-Containern. Die verbleibenden 3 GB Speicher bleibt für die anderen auf dem Knoten ausgeführten Hadoop-Dienste.

Wenn eine Pipeline unter YARN ausgeführt wird, werden ein Pipeline-Workflow-Treiber, ein Spark-Treiber und viele Spark-Ausführer in Dataproc gestartet.

Treiber und Ausführende

Der Workflow-Treiber ist für das Starten eines 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 funktionieren unter den Executors, führen aber normalerweise keine für die eigentliche Arbeit. Die eigentliche Arbeit wird größtenteils von den Spark-Executors ausgeführt.

Nächste Schritte