Implementieren Sie die Anwendungsskalierung in Managed Service für Apache Flink - Managed Service für Apache Flink

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 in der Apache Flink-Dokumentation.

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ägt 1; der voreingestellte Maximalwert beträgt 256.

  • 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 ist 1 und der Maximalwert ist 8. 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 in der Apache Flink-Dokumentation.

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.