Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Implémenter le dimensionnement des applications dans le service géré pour Apache Flink
Vous pouvez configurer l’exécution parallèle des tâches et l’allocation de ressources pour le service géré Amazon pour Apache Flink afin d’implémenter la mise à l’échelle. Pour plus d'informations sur la façon dont Apache Flink planifie les instances parallèles de tâches, voir Parallel Execution dans la documentation d'
Rubriques
Configurer le parallélisme des applications et ParallelismPer KPU
Vous configurez l’exécution parallèle des tâches votre application de service géré pour Apache Flink (telles que la lecture depuis une source ou l’exécution d’un opérateur) à l’aide des propriétés ParallelismConfiguration
suivantes :
-
Parallelism
: utilisez cette propriété pour définir le parallélisme par défaut de l’application Apache Flink. Tous les opérateurs, sources et récepteurs s’exécutent avec ce parallélisme, sauf s’ils sont remplacés dans le code de l’application. La valeur par défaut est1
, et la valeur maximale est256
. -
ParallelismPerKPU
— Utilisez cette propriété pour définir le nombre de tâches parallèles qui peuvent être planifiées par unité de traitement Kinesis (KPU) de votre application. La valeur par défaut est1
, et la valeur maximale est8
. Pour les applications comportant des opérations de blocage (par exemple, des E/S), une valeur plus élevée deParallelismPerKPU
entraîne une utilisation complète des KPU ressources.
Note
La limite pour Parallelism
est égale au nombre de ParallelismPerKPU
fois la limite pour KPUs (dont la valeur par défaut est 64). La KPUs limite peut être augmentée en demandant une augmentation de limite. Pour des instructions pour demander une augmentation de cette limite, consultez « Pour demander une augmentation de limite » dans Service Quotas.
Pour plus d'informations sur la définition du parallélisme des tâches pour un opérateur spécifique, consultez la section Configuration du parallélisme : opérateur
Allouer des unités de traitement Kinesis
Le service géré pour Apache Flink fournit la capacité en tant queKPUs. Un single vous KPU fournit 1 V CPU et 4 Go de mémoire. Pour chaque KPU allocation, 50 Go de stockage d'applications en cours d'exécution sont également fournis.
Le service géré pour Apache Flink calcule KPUs les éléments nécessaires pour exécuter votre application à l'aide des ParallelismPerKPU
propriétés Parallelism
et, comme suit :
Allocated KPUs for the application = Parallelism/ParallelismPerKPU
Le service géré pour Apache Flink fournit rapidement des ressources à vos applications en réponse aux pics de débit ou d’activité de traitement. Il supprime progressivement les ressources de votre application une fois le pic d’activité passé. Pour désactiver l’allocation automatique des ressources, définissez la valeur AutoScalingEnabled
sur false
, comme décrit plus loin dans Mettez à jour le parallélisme de votre application.
La limite par défaut KPUs pour votre application est de 64. Pour des instructions pour demander une augmentation de cette limite, consultez « Pour demander une augmentation de limite » dans Service Quotas.
Note
Un supplément KPU est facturé à des fins d'orchestration. Pour plus d’informations, consultez Tarification du service géré pour Apache Flink
Mettez à jour le parallélisme de votre application
Cette section contient des exemples de demandes d'APIactions qui définissent le parallélisme d'une application. Pour plus d'exemples et d'instructions sur la façon d'utiliser des blocs de requêtes avec API des actions, consultezAPIExemple de code de service géré pour Apache Flink.
L’exemple de demande d’action CreateApplication
suivant définit le parallélisme lorsque vous créez une application :
{ "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 } } } }
L’exemple de demande d’action UpdateApplication
suivant définit le parallélisme pour une application existante :
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }
L’exemple de demande d’action UpdateApplication
suivant désactive le parallélisme pour une application existante :
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }
maxParallelism considérations
Le parallélisme maximal qu'une tâche Flink peut mettre à l'échelle est limité au minimum pour maxParallelism
tous les opérateurs de la tâche. Par exemple, si vous avez une tâche simple avec uniquement une source et un récepteur, et que la source a 16 et le récepteur 8, l'application ne peut pas évoluer au-delà du parallélisme de 8. maxParallelism
Pour savoir comment la valeur par défaut maxParallelism
d'un opérateur est calculée et comment la remplacer, reportez-vous à la section Définition du parallélisme maximal dans la
En règle générale, sachez que si vous ne définissez maxParallelism
aucun opérateur et que vous démarrez votre application avec un parallélisme inférieur ou égal à 128, tous les opérateurs auront un maxParallelism
de 128.
Note
Le parallélisme maximal de la tâche est la limite supérieure du parallélisme pour le dimensionnement de votre application en conservant son état.
Si vous modifiez maxParallelism
une application existante, celle-ci ne pourra pas redémarrer à partir d'une capture d'écran précédente prise avec l'anciennemaxParallelism
. Vous ne pouvez redémarrer l'application que sans capture d'écran.
Si vous envisagez de dimensionner votre application à un parallélisme supérieur à 128, vous devez le définir explicitement maxParallelism
dans votre application.
La logique de mise à l'échelle automatique empêchera le dimensionnement d'une tâche Flink jusqu'à un parallélisme supérieur au parallélisme maximal de la tâche.
Si vous utilisez un dimensionnement automatique personnalisé ou un dimensionnement planifié, configurez-les de manière à ce qu'ils ne dépassent pas le parallélisme maximal de la tâche.
Si vous redimensionnez manuellement votre application au-delà du parallélisme maximal, l'application ne démarre pas.