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.
Reibungslose Außerbetriebnahme von Spot-Instances mit Flink on Amazon EMR EKS
Flink mit aktiviertem EMR Amazon EKS kann die Zeit für den Neustart des Jobs bei der Wiederherstellung oder Skalierung von Aufgaben verbessern.
Übersicht
EMRAmazon unterstützt in den EKS Versionen 6.15.0 und höher die ordnungsgemäße Außerbetriebnahme von Task-Managern auf Spot-Instances in Amazon EMR mit Apache Flink. EKS Im Rahmen dieser Funktion bietet Amazon EMR on EKS with Flink die folgenden Funktionen:
-
Just-in-time Checkpointing — Flink-Streaming-Jobs können auf eine Unterbrechung der Spot-Instance reagieren, einen just-in-time (JIT) Checkpoint der laufenden Jobs durchführen und die Planung zusätzlicher Aufgaben auf diesen Spot-Instances verhindern. JITCheckpoint wird mit dem standardmäßigen und adaptiven Scheduler unterstützt.
-
Kombinierter Neustartmechanismus – Ein kombinierter Neustartmechanismus versucht nach besten Kräften, den Auftrag neu zu starten, nachdem er die Parallelität der Zielressource oder das Ende des aktuell konfigurierten Fensters erreicht hat. Dies verhindert auch aufeinanderfolgende Auftragsneustarts, die durch das Beenden mehrerer Spot-Instances verursacht werden könnten. Der kombinierte Neustartmechanismus ist nur mit dem adaptiven Scheduler verfügbar.
Diese Funktionen bieten die folgenden Vorteile:
-
Sie können Spot-Instances nutzen, um Task-Manager auszuführen und die Cluster-Ausgaben zu reduzieren.
-
Die verbesserte Verfügbarkeit des Spot-Instance-Task-Managers führt zu einer höheren Ausfallsicherheit und einer effizienteren Auftragsplanung.
-
Ihre Flink-Aufträge haben eine höhere Verfügbarkeit, da nach der Beendigung der Spot-Instance weniger Neustarts erforderlich sind.
Wie funktioniert eine ordentliche Außerbetriebnahme
Stellen Sie sich das folgende Beispiel vor: Sie stellen einen EKS Amazon-On-Cluster bereit, EMR auf dem Apache Flink ausgeführt wird, und Sie geben On-Demand-Knoten für Job Manager und Spot-Instance-Knoten für Task Manager an. Zwei Minuten vor der Beendigung erhält der Task-Manager eine Benachrichtigung über die Unterbrechung.
In diesem Szenario würde der Job Manager das Signal zur Unterbrechung der Spot-Instance verarbeiten, die Planung zusätzlicher Aufgaben auf der Spot-Instance blockieren und das JIT Checkpointing für den Streaming-Job einleiten.
Dann würde der Job-Manager das Auftragsdiagramm erst dann neu starten, wenn ausreichend neue Ressourcen verfügbar sind, um die aktuelle Auftragsparallelität im aktuellen Neustartintervallfenster zu erfüllen. Das Intervall für das Neustartfenster wird auf der Grundlage der Dauer des Austauschs der Spot-Instance, der Erstellung neuer Task-Manager-Pods und der Registrierung bei Job Manager festgelegt.
Voraussetzungen
Um die ordnungsgemäße Außerbetriebnahme zu verwenden, erstellen Sie einen Streaming-Job auf einem EKS Amazon-On-Cluster, auf dem Apache Flink ausgeführt wird, und führen Sie EMR ihn aus. Aktivieren Sie den adaptiven Scheduler und Task-Manager, die für mindestens eine Spot-Instance geplant sind, wie im folgenden Beispiel gezeigt. Sie sollten On-Demand-Knoten für den Job-Manager verwenden, und Sie können On-Demand-Knoten für den Task-Manager verwenden, sofern es auch mindestens eine Spot-Instance gibt.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name:
deployment_name
spec: flinkVersion: v1_17 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" cluster.taskmanager.graceful-decommission.enabled: "true" execution.checkpointing.interval: "240s" jobmanager.adaptive-scheduler.combined-restart.enabled: "true" jobmanager.adaptive-scheduler.combined-restart.window-interval : "1m" serviceAccount: flink jobManager: resource: memory: "2048m" cpu: 1 nodeSelector: 'eks.amazonaws.com/capacityType': 'ON_DEMAND' taskManager: resource: memory: "2048m" cpu: 1 nodeSelector: 'eks.amazonaws.com/capacityType': 'SPOT' job: jarURI:flink_job_jar_path
Konfiguration
In diesem Abschnitt werden die meisten Konfigurationen behandelt, die Sie für Ihre Stilllegungsbedürfnisse angeben können.
Schlüssel | Beschreibung | Standardwert | Zulässige Werte |
---|---|---|---|
cluster.taskmanager.graceful-decommission.enabled
|
Aktivieren Sie die ordnungsgemäße Stilllegung des Task-Managers. |
true
|
true , false
|
jobmanager.adaptive-scheduler.combined-restart.enabled
|
Aktivieren Sie den kombinierten Neustartmechanismus im adaptiven Scheduler. |
false
|
true , false
|
jobmanager.adaptive-scheduler.combined-restart.window-interval
|
Das kombinierte Neustart-Fensterintervall für die Durchführung zusammengeführter Neustarts für den Auftrag. Eine Ganzzahl ohne Einheit wird als Millisekunden interpretiert. |
1m
|
Beispiele: 30 , 60s , 3m , 1h |