Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.
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.
Implementieren Sie die Anwendungsskalierung in Managed Service für Apache Flink
Sie können die parallele Ausführung von Aufgaben und die Zuweisung von Ressourcen für Amazon Managed Service für Apache Flink konfigurieren, um die Skalierung zu implementieren. Informationen darüber, wie Apache Flink parallel Instanzen von Aufgaben plant, finden Sie unter Parallele Ausführung
Themen
Konfigurieren Sie die Anwendungsparallelität und ParallelismPer KPU
Sie konfigurieren die parallele Ausführung der Aufgaben Ihrer mit Managed Service für Apache Flink erstellten Anwendung (wie das Lesen aus einer Quelle oder das Ausführen eines Operators) mithilfe der folgenden ParallelismConfiguration
-Eigenschaften:
-
Parallelism
– Verwenden Sie diese Eigenschaft, um die Standardparallelität der Apache-Flink-Anwendung festzulegen. Alle Operatoren, Quellen und Senken werden mit dieser Parallelität ausgeführt, sofern sie nicht im Anwendungscode überschrieben werden. Der Standardwert beträgt1
; der voreingestellte Maximalwert beträgt256
. -
ParallelismPerKPU
— Verwenden Sie diese Eigenschaft, um die Anzahl der parallel Aufgaben festzulegen, die pro Kinesis Processing Unit (KPU) Ihrer Anwendung geplant werden können. Der Standardwert ist1
und der Maximalwert ist8
. Bei Anwendungen mit blockierenden Vorgängen (z. B. I/O)ParallelismPerKPU
führt ein höherer Wert von zu einer vollen Auslastung der KPU Ressourcen.
Anmerkung
Der Grenzwert für Parallelism
entspricht dem ParallelismPerKPU
Mehrfachen des Grenzwerts für KPUs (der standardmäßig 64 ist). Das KPUs Limit kann erhöht werden, indem eine Erhöhung des Limits beantragt wird. Anweisungen zum Anfordern einer Erhöhung dieses Grenzwerts finden Sie unter „So fordern Sie eine Erhöhung des Grenzwerts an“ unter Service Quotas.
Informationen zum Einstellen der Aufgabenparallelität für einen bestimmten Operator finden Sie unter Setting the Parallelism: Operator
Kinesis-Verarbeitungseinheiten zuweisen
Managed Service für Apache Flink stellt Kapazität bereit als. KPUs Ein einziger KPU bietet Ihnen 1 V CPU und 4 GB Arbeitsspeicher. Für jede KPU zugewiesene Anwendung werden außerdem 50 GB Speicher für laufende Anwendungen bereitgestellt.
Managed Service for Apache Flink berechnet KPUs die für die Ausführung Ihrer Anwendung erforderlichen Werte anhand der ParallelismPerKPU
Eigenschaften Parallelism
und wie folgt:
Allocated KPUs for the application = Parallelism/ParallelismPerKPU
Managed Service für Apache Flink stellt Ihren Anwendungen schnell Ressourcen zur Verfügung, um auf Spitzen im Durchsatz oder bei der Verarbeitungsaktivität zu reagieren. Es entfernt Ressourcen schrittweise aus Ihrer Anwendung, nachdem die Aktivitätsspitze vorüber ist. Um die automatische Zuweisung von Ressourcen zu deaktivieren, setzen Sie den Wert von AutoScalingEnabled
auf false
, wie weiter unten unter Aktualisieren Sie die Parallelität Ihrer Anwendung beschrieben.
Das Standardlimit KPUs für Ihre Anwendung ist 64. Anweisungen zum Anfordern einer Erhöhung dieses Grenzwerts finden Sie unter „So fordern Sie eine Erhöhung des Grenzwerts an“ unter Service Quotas.
Anmerkung
Für KPU Orchestrierungszwecke wird ein Aufpreis berechnet. Weitere Informationen finden Sie unter Managed Service für Apache Flink – Preise
Aktualisieren Sie die Parallelität Ihrer Anwendung
Dieser Abschnitt enthält Beispielanfragen für API Aktionen, die die Parallelität einer Anwendung festlegen. Weitere Beispiele und Anweisungen zur Verwendung von Anforderungsblöcken mit API Aktionen finden Sie unter. APIBeispielcode für Managed Service für Apache Flink
Die folgende Beispielanforderung für die CreateApplication
-Aktion legt die Parallelität fest, wenn Sie eine Anwendung erstellen:
{ "ApplicationName": "string", "RuntimeEnvironment":"FLINK-1_18", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "AutoScalingEnabled": "true", "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } } } }
Die folgende Beispielanforderung für die UpdateApplication
-Aktion legt die Parallelität für eine bestehende Anwendung fest:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }
Die folgende Beispielanforderung für die UpdateApplication
-Aktion deaktiviert die Parallelität für eine bestehende Anwendung:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }
maxParallelism Überlegungen
Die maximale Parallelität, die ein Flink-Job skalieren kann, ist durch das Minimum maxParallelism
für alle Operatoren des Jobs begrenzt. Wenn Sie beispielsweise einen einfachen Job mit nur einer Quelle und einer Senke haben und die Quelle einen Wert maxParallelism
von 16 und die Senke einen Wert von 8 hat, kann die Anwendung nicht über die Parallelität 8 hinaus skalieren.
Informationen darüber, wie die Standardeinstellung maxParallelism
eines Operators berechnet wird und wie Sie die Standardeinstellung überschreiben können, finden Sie unter Setting the Maximum Parallelism in der Apache Flink-Dokumentation
Als Grundregel gilt: Wenn Sie maxParallelism
für keinen Operator definieren und Ihre Anwendung mit einer Parallelität von weniger als oder gleich 128 starten, haben alle Operatoren einen Wert von 128. maxParallelism
Anmerkung
Die maximale Parallelität des Jobs ist die Obergrenze der Parallelität für die Skalierung Ihrer Anwendung unter Beibehaltung des Status.
Wenn Sie eine bestehende Anwendung ändern, kann die Anwendung nicht maxParallelism
von einem früheren Snapshot aus neu gestartet werden, der mit der alten erstellt wurde. maxParallelism
Sie können die Anwendung nur ohne Snapshot neu starten.
Wenn Sie planen, Ihre Anwendung auf eine Parallelität von mehr als 128 zu skalieren, müssen Sie dies maxParallelism
in Ihrer Anwendung explizit festlegen.
Die Autoscaling-Logik verhindert, dass ein Flink-Job auf eine Parallelität skaliert wird, die die maximale Parallelität des Jobs überschreitet.
Wenn Sie eine benutzerdefinierte automatische Skalierung oder eine geplante Skalierung verwenden, konfigurieren Sie sie so, dass sie die maximale Parallelität des Jobs nicht überschreiten.
Wenn Sie Ihre Anwendung manuell über die maximale Parallelität hinaus skalieren, kann die Anwendung nicht gestartet werden.