Schätzung der erforderlichen Amazon-EMR-Cluster-Kapazität - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schätzung der erforderlichen Amazon-EMR-Cluster-Kapazität

Obwohl Amazon EMR eine Plattform ist, deren Größe geändert werden kann, ist es wichtig, die richtige Größe der Cluster zu wählen. Durch die richtige Dimensionierung wird ein langsamer Cluster vermieden, wenn er unterdimensioniert ist, oder höhere Kosten, wenn der Cluster überdimensioniert ist. Um diesen Problemen vorzubeugen, können Sie die Anzahl und den Typ der Knoten berechnen, die für die Workloads benötigt werden.

Primärknoten

Dieser Knotentyp ist für die Koordination der Verteilung von Daten und Prozessen verantwortlich. Wie bereits erwähnt, sind die Rechenanforderungen für Primärknoten gering. Sie können einen einzigen Primärknoten verwenden, um Ihren Amazon EMR-Cluster zu verwalten. Sie können jedoch bis zu drei Primärknoten verwenden, sodass Sie keinen einzelnen Fehlerpunkt haben. Wenn ein Primärknoten ausfällt, führt Amazon EMR ein Failover zu einem der beiden anderen Primärknoten durch.

Core- und Aufgabenknoten

Der Unterschied zwischen Core- und Aufgabenknoten besteht darin, dass Aufgabenknoten keine Daten speichern, sondern lediglich Strom für parallele Rechenaufgaben bereitstellen.

Um die Anzahl der Core- und Aufgabenknoten zu berechnen, müssen Sie die Größe Ihrer Daten und Ihren ungefähren Speicherverbrauch kennen.

Core-Knoten

Core-Knoten sind verantwortlich dafür, Aufgaben zur Verarbeitung der Daten auszuführen und speichern Daten auch im Hadoop Distributed File System (HDFS). Um die Kapazität der Core-Knoten zu berechnen, definieren Sie die Anzahl der Core-Knoten und multiplizieren dann die Anzahl der Knoten mit dem Amazon Elastic Block Store (Amazon EBS)-Speicher jedes Knotens.

Wenn Sie beispielsweise 10 Core-Knoten für die Verarbeitung von 1 TiB an Daten definieren und Sie einen Instance-Typ m5.xlarge mit 64 GiB Amazon-EBS-Speicher haben, haben Sie 10 nodes × 64 GiB bzw. 640 GiB Kapazität. Basierend auf dem HDFS-Replikationsfaktor von drei wird Ihre Datengröße dreimal in den Knoten repliziert, sodass für 1 TiB Daten eine Kapazität von 3 TiB erforderlich ist. Da dieses Beispiel nur 640 GiB hat, müssen Sie die Anzahl der Knoten erhöhen oder den Instance-Typ ändern, bis Sie eine Kapazität von 3 TiB erreichen.

Der Instance-Typ m5.4xlarge hat 256 GiB Speicherplatz. Wenn Sie zu einem Instance-Typ m5.4xlarge wechseln und 12 Instances auswählen, ist ausreichend Kapazität vorhanden.

12 instances × 256 GiB of storage = 3072 GiB = 3 TiB available

Aufgabenknoten

Aufgabenknoten führen nur Aufgaben aus. Sie speichern keine Daten. Um die Anzahl der Aufgabenknoten zu berechnen, benötigen Sie eine Schätzung der Speicherauslastung. Diese Kapazität kann in Core- und Aufgabenknoten aufgeteilt werden. Um die Anzahl der benötigten Aufgabenknoten zu berechnen, können Sie den von den Core-Knoten bereitgestellten Arbeitsspeicher, den Sie im vorherigen Schritt berechnet haben, von der Speicherauslastung abziehen.

Um über einen größeren Speicherbereich zu verfügen, empfiehlt es sich, den benötigten Speicher mal drei zu multiplizieren.

Angenommen, Sie haben 28 Prozesse mit jeweils 20 GiB.

3 × 28 processes × 20 GiB of memory = 1680 GiB of memory

In diesem Beispiel verfügen Ihre Core-Knoten über 64 GiB Arbeitsspeicher (m5.4xlarge-Instances). Ihre Core-Knoten liefern 64 GiB × 12 nodes = 768 GiB of memory, was in diesem Beispiel nicht ausreicht.

Um den Mangel zu ermitteln, subtrahieren Sie den Arbeitsspeicher des Core-Knotens vom gesamten benötigten Arbeitsspeicher.

1680 GiB – 768 GiB core node memory = 912 GiB memory shortage.

Aufgabenknoten können die verbleibenden 912 GiB Arbeitsspeicher bereitstellen. In diesem Beispiel verfügen Ihre Aufgabenknoten über 32 GiB Arbeitsspeicher (m5.2xlarge-Instances). Um die Anzahl der benötigten Aufgabenknoten zu ermitteln, dividieren Sie den Speichermangel durch den Arbeitsspeicher des Instance-Typs.

912 GiB/32 GiB = 28.5 task nodes

Sie können nicht nur einen Bruchteil eines Aufgabenknotens haben, also müssen Sie auf 29 Aufgabenknoten aufrunden.