Pipelineleistung – Übersicht

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

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 große Datenmengen verarbeiten.
Master- und Worker-Knoten
Physische oder virtuelle Maschinen, auf denen die Verarbeitung erfolgen kann. Masterknoten koordinieren in der Regel die Arbeit. Auf Worker-Knoten werden Executors ausgeführt, die Daten verarbeiten. Sie haben Maschinenmerkmale (Arbeitsspeicherkapazität und Anzahl der vCores, die für Prozesse verfügbar sind).
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 dient. Er verwaltet Aufgaben, plant die Arbeit auf Worker-Knoten und überwacht den Jobfortschritt.
Executors
Mehrere VMs, die die tatsächlichen Datenverarbeitungsaufgaben ausführen, wie vom Treiber angewiesen. 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 Cloud Data Fusion-Pipelines auf Dataproc-Clustern ausführen (dies ist die empfohlene Bereitstellungsmethode), wird im Hintergrund YARN (Yet Another Resource Negotiator) verwendet. Dataproc nutzt YARN für die Ressourcenverwaltung innerhalb 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. Masterknoten sind in der Regel für die Koordination der Arbeit verantwortlich, während Workerknoten die eigentliche Arbeit ausführen. Cluster haben normalerweise eine kleine Anzahl von Masterknoten (einen oder drei) und eine große Anzahl von Workern. YARN wird als Arbeitskoordinationssystem verwendet. YARN führt einen Resource Manager-Dienst auf dem Masterknoten und einen Node Manager-Dienst auf jedem Worker-Knoten aus. Resource Manager koordinieren sich mit allen Knotenmanagern, um zu bestimmen, wo Container im Cluster erstellt und ausgeführt werden sollen.

YARN Resource Manager und Node Manager

Auf jedem Worker-Knoten reserviert der NodeManager einen Teil des verfügbaren Arbeitsspeichers und der CPUs für das Ausführen von YARN-Containern. Wenn Ihre Worker-Knoten in einem Dataproc-Cluster beispielsweise n1-standard-4-VMs (4 CPUs, 15 GB Arbeitsspeicher) sind, reserviert jeder Node Manager 4 CPUs und 12 GB Arbeitsspeicher für das Ausführen von YARN-Containern. Die verbleibenden 3 GB Arbeitsspeicher bleiben für die anderen Hadoop-Dienste, die auf dem Knoten ausgeführt werden.

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 die Ausführung der einen oder mehrerer Spark-Programme verantwortlich, aus denen eine Pipeline besteht. Der Workflow-Treiber hat normalerweise nicht viel zu tun. Jedes Spark-Programm führt einen einzelnen Spark-Treiber und mehrere Spark-Executors aus. Der Treiber koordiniert die Arbeit der Ausführenden, führt aber in der Regel keine eigentliche Arbeit aus. Der Großteil der eigentlichen Arbeit wird von den Spark-Ausführern ausgeführt.

Nächste Schritte