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 |
---|---|---|---|---|---|
|
Feature einschalten |
|
nicht gesetzt |
Bezeichnung |
|
|
Auftrag-Signatur |
string |
nicht gesetzt |
Anmerkung |
|
1 Verwenden Sie diesen Parameter als SparkSubmitParameter
oder ConfigurationOverride
in der StartJobRun
API.
-
dynamic.sizing
– Sie können das vertikale Auto Scaling mit demdynamic.sizing
-Label ein- und ausschalten. Um das vertikale Auto Scaling zu aktivieren, stellen Sie auf dem Spark-Treiber-Pod die Optiondynamic.sizing
auftrue
ein. Wenn Sie diese Bezeichnung weglassen oder sie auf einen anderen Wert alstrue
festlegen, ist das vertikale Auto Scaling ausgeschaltet. -
dynamic.sizing.signature
– Legen Sie die Aufgabensignatur mit der Anmerkungdynamic.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 |
---|---|---|---|---|---|
Modus für vertikales Auto Scaling |
|
|
Anmerkung |
|
|
Aktiviert die Speicherskalierung |
|
|
Anmerkung |
|
|
Schalten Sie die CPU Skalierung ein oder aus |
|
|
Anmerkung |
|
|
Mindestlimit für die Speicherskalierung |
Zeichenfolge, Ressourcenmenge K8s1G |
nicht gesetzt |
Anmerkung |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min |
|
Höchstgrenze für die Speicherskalierung |
Zeichenfolge, Ressourcenmenge K8s4G |
nicht gesetzt |
Anmerkung |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max |
|
Mindestlimit für die CPU Skalierung |
Zeichenfolge, Ressourcenmenge K8s1 |
nicht gesetzt |
Anmerkung |
spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min |
|
Höchstgrenze für die CPU Skalierung |
Zeichenfolge, Ressourcenmenge K8s2 |
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.