Konfiguration von vertikalem Autoscaling für Amazon EMR auf EKS - Amazon EMR

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.

Konfiguration von vertikalem Autoscaling für Amazon EMR auf EKS

Sie können vertikale Autoskalierung konfigurieren, wenn Sie Amazon EMR Spark-Jobs über den StartJobRunAPIeinreichen. Stellen Sie die Konfigurationsparameter für Auto Scaling auf dem Spark-Treiber-Pod ein, wie im Beispiel unter Einreichen eines Spark-Auftrags mit vertikalem Auto Scaling gezeigt.

Der EMR Amazon-Operator für EKS vertikales Autoscaling hört Treiber-Pods mit Autoscaling ab und richtet dann die Integration mit dem Kubernetes Vertical Pod Autoscaler (VPA) mit den Einstellungen auf dem Treiber-Pod ein. Dies erleichtert die Ressourcenverfolgung und Auto Scaling von Spark-Ausführer-Pods.

In den folgenden Abschnitten werden die Parameter beschrieben, die Sie verwenden können, wenn Sie vertikales Autoscaling für Ihren EKS Amazon-Cluster konfigurieren.

Anmerkung

Konfigurieren Sie den Feature-Toggle-Parameter als Label und konfigurieren Sie die übrigen Parameter als Anmerkungen auf dem Spark-Treiber-Pod. Die Auto-Scaling-Parameter gehören zur emr-containers.amazonaws.com/-Domain und haben das Präfix dynamic.sizing.

Erforderliche Parameter

Sie müssen die folgenden beiden Parameter in den Spark-Auftrag-Treiber aufnehmen, wenn Sie Ihren Auftrag einreichen:

Schlüssel Beschreibung Akzeptierte Werte Standardwert Typ Spark-Parameter1

dynamic.sizing

Feature einschalten

true, false

nicht gesetzt

Bezeichnung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing

dynamic.sizing.signature

Auftrag-Signatur

string

nicht gesetzt

Anmerkung

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature

1 Verwenden Sie diesen Parameter als SparkSubmitParameter oder ConfigurationOverride in der StartJobRunAPI.

  • dynamic.sizing – Sie können das vertikale Auto Scaling mit dem dynamic.sizing-Label ein- und ausschalten. Um das vertikale Auto Scaling zu aktivieren, stellen Sie auf dem Spark-Treiber-Pod die Option dynamic.sizing auf true ein. Wenn Sie diese Bezeichnung weglassen oder sie auf einen anderen Wert als true festlegen, ist das vertikale Auto Scaling ausgeschaltet.

  • dynamic.sizing.signature – Legen Sie die Aufgabensignatur mit der Anmerkung dynamic.sizing.signature auf dem Treiber-Pod fest. Vertikales Autoscaling aggregiert Ihre Ressourcennutzungsdaten über verschiedene Ausführungen von Amazon EMR Spark-Jobs hinweg, um Ressourcenempfehlungen abzuleiten. Sie geben die eindeutige Kennung an, um die Aufträge miteinander zu verknüpfen.

    Anmerkung

    Wenn sich Ihre Aufgabe in einem festen Intervall wiederholt, z. B. täglich oder wöchentlich, sollte Ihre Aufgabensignatur für jede neue Instance der Aufgabe gleich bleiben. Dadurch wird sichergestellt, dass mit vertikalem Auto Scaling Empfehlungen für verschiedene Ausführungen des Aufträge berechnet und aggregiert werden können.

1 Verwenden Sie diesen Parameter als SparkSubmitParameter oder ConfigurationOverride in der. StartJobRun API

Optionale Parameter

Vertikales Auto Scaling unterstützt auch die folgenden optionalen-Parameter. Legen Sie sie als Anmerkungen auf dem Treiber-Pod fest.

Schlüssel Beschreibung Akzeptierte Werte Standardwert Typ Spark-Parameter1

dynamic.sizing.mode

Modus für vertikales Auto Scaling

Off, Initial, Auto

Off

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.mode

dynamic.sizing.scale.memory

Aktiviert die Speicherskalierung

true, false

true

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory

dynamic.sizing.scale.cpu

Schalten Sie die CPU Skalierung ein oder aus

true, false

false

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu

dynamic.sizing.scale.memory.min

Mindestlimit für die Speicherskalierung

Zeichenfolge, Ressourcenmenge K8s, z. B.: 1G

nicht gesetzt

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min

dynamic.sizing.scale.memory.max

Höchstgrenze für die Speicherskalierung

Zeichenfolge, Ressourcenmenge K8s, z. B.: 4G

nicht gesetzt

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max

dynamic.sizing.scale.cpu.min

Mindestlimit für die CPU Skalierung

Zeichenfolge, Ressourcenmenge K8s, z. B.: 1

nicht gesetzt

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min

dynamic.sizing.scale.cpu.max

Höchstgrenze für die CPU Skalierung

Zeichenfolge, Ressourcenmenge K8s, z. B.: 2

nicht gesetzt

Anmerkung

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.max

Modi für vertikales Auto Scaling

Der mode Parameter ist den verschiedenen Autoscaling-Modi zugeordnet, die von VPA unterstützt werden. Verwenden Sie die dynamic.sizing.mode-Anmerkung auf dem Treiber-Pod, um den Modus einzustellen. Folgende Werte werden für diesen Parameter unterstützt:

  • Aus – Ein Probelaufmodus, in dem Sie zwar Empfehlungen überwachen können, das Auto Scaling jedoch nicht durchgeführt wird. Dies ist der Standardmodus für das vertikale Auto Scaling. In diesem Modus berechnet die zugehörige vertikale Pod-Autoscaler-Ressource Empfehlungen, und Sie können die Empfehlungen mit Tools wie kubectl, Prometheus und Grafana überwachen.

  • Anfänglich — In diesem Modus werden Ressourcen beim Start des Jobs VPA automatisch skaliert, sofern Empfehlungen verfügbar sind, die auf historischen Ausführungen des Jobs basieren, z. B. im Fall eines wiederkehrenden Jobs.

  • Automatisch — In diesem Modus werden Spark-Executor-Pods entfernt und sie automatisch mit den empfohlenen Ressourceneinstellungen skaliert, wenn der Spark-Treiber-Pod sie neu startet. VPA Manchmal werden laufende VPA Spark-Executor-Pods entfernt, sodass es zu zusätzlicher Latenz kommen kann, wenn der unterbrochene Executor erneut versucht wird.

Skalierung von Ressourcen

Wenn Sie die vertikale Autoskalierung einrichten, können Sie wählen, ob Sie skalieren möchten und welche Speicherressourcen vorhanden sind. CPU Stellen Sie die Anmerkungen dynamic.sizing.scale.cpu und dynamic.sizing.scale.memory auf true oder false ein. Standardmäßig ist die CPU Skalierung auf und false die Speicherskalierung auf true eingestellt.

Mindest- und Höchstwerte für Ressourcen (Grenzen)

Optional können Sie auch Grenzen für die CPU und Speicherressourcen festlegen. Wählen Sie einen Mindest- und Höchstwert für diese Ressourcen mit den dynamic.sizing.[memory/cpu].[min/max]-Anmerkungen, wenn Sie das Auto Scaling aktivieren. In der Standardeinstellung haben die Ressourcen keine Einschränkungen. Legen Sie die Anmerkungen als Zeichenkettenwerte fest, die eine Kubernetes-Ressourcenmenge darstellen. Stellen Sie beispielsweise dynamic.sizing.memory.max auf 4G ein, um 4 GB darzustellen.