Amazon Managed Service para Apache Flink Amazon se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implemente el escalado de aplicaciones en Managed Service for Apache Flink
Puede configurar la ejecución paralela de las tareas y la asignación de recursos para que Amazon Managed Service para Apache Flink implemente la reducción horizontal. Para obtener información sobre cómo Apache Flink programa instancias paralelas de tareas, consulte Ejecución paralela
Temas
Configure el paralelismo de las aplicaciones y ParallelismPer KPU
Para configurar la ejecución paralela de las tareas de la aplicación de Managed Service para Apache Flink (como leer de una fuente o ejecutar un operador), se utilizan las siguientes propiedades ParallelismConfiguration
:
-
Parallelism
: utilice esta propiedad para establecer el paralelismo predeterminado de la aplicación de Apache Flink. Todos los operadores, las fuentes y los receptores se ejecutan con este paralelismo, a menos que estén anulados en el código de la aplicación. El valor predeterminado es1
, y el valor máximo es256
. -
ParallelismPerKPU
— Utilice esta propiedad para establecer el número de tareas paralelas que se pueden programar por unidad de procesamiento de Kinesis (KPU) de su aplicación. El valor predeterminado es1
y el máximo es8
. En el caso de las aplicaciones que tienen operaciones de bloqueo (por ejemplo, E/S), un valor más alto de implicaParallelismPerKPU
una utilización total de los KPU recursos.
nota
El límite de Parallelism
es igual a ParallelismPerKPU
multiplicado por el límite de KPUs (que tiene un valor predeterminado de 64). El KPUs límite se puede aumentar solicitando un aumento del límite. Para obtener instrucciones sobre cómo solicitar un aumento de este límite, consulte “Para solicitar un aumento del límite” en Service Quotas.
Para obtener información sobre cómo configurar el paralelismo de tareas para un operador específico, consulte Configuración del paralelismo: operador en la
Asignar unidades de procesamiento de Kinesis
El servicio gestionado para Apache Flink aprovisiona capacidad como. KPUs Una sola KPU unidad le proporciona 1 V CPU y 4 GB de memoria. Por cada espacio KPU asignado, también se proporcionan 50 GB de almacenamiento para aplicaciones en ejecución.
Managed Service for Apache Flink calcula KPUs los recursos necesarios para ejecutar la aplicación mediante las ParallelismPerKPU
propiedades Parallelism
y, de la siguiente manera:
Allocated KPUs for the application = Parallelism/ParallelismPerKPU
Managed Service para Apache Flink proporciona rápidamente recursos a las aplicaciones en respuesta a los picos de rendimiento o de la actividad de procesamiento. Elimina los recursos de la aplicación de forma gradual una vez que ha pasado el pico de actividad. Para deshabilitar la asignación automática de recursos, defina el valor AutoScalingEnabled
en false
, como se describe más adelante en Actualice el paralelismo de su aplicación.
El límite predeterminado KPUs para su aplicación es 64. Para obtener instrucciones sobre cómo solicitar un aumento de este límite, consulte “Para solicitar un aumento del límite” en Service Quotas.
nota
Se KPU cobra un adicional por motivos de orquestación. Para obtener más información, consulte Precios de Managed Service para Apache Flink
Actualice el paralelismo de su aplicación
Esta sección contiene ejemplos de solicitudes de API acciones que establecen el paralelismo de una aplicación. Para obtener más ejemplos e instrucciones sobre cómo usar bloques de solicitudes con API acciones, consulte. Código de API ejemplo de Managed Service for Apache Flink
El siguiente ejemplo de solicitud de la acción CreateApplication
establece el paralelismo al crear una aplicación:
{ "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 } } } }
El siguiente ejemplo de solicitud de la acción UpdateApplication
establece el paralelismo para una aplicación existente:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }
El siguiente ejemplo de solicitud de la acción UpdateApplication
deshabilita el paralelismo para una aplicación existente:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }
maxParallelism consideraciones
El paralelismo máximo que puede escalar una tarea de Flink está limitado por el mínimo maxParallelism
entre todos los operadores de la tarea. Por ejemplo, si tiene un trabajo simple con solo una fuente y un sumidero, y la fuente tiene 16 y el sumidero tiene 8, la aplicación no podrá escalar más allá del paralelismo de 8. maxParallelism
Para saber cómo se calcula el valor predeterminado maxParallelism
de un operador y cómo anularlo, consulte Configuración del paralelismo máximo en la documentación
Como regla básica, tenga en cuenta que si no define maxParallelism
ningún operador e inicia la aplicación con un paralelismo menor o igual a 128, todos los operadores tendrán un valor de 128. maxParallelism
nota
El paralelismo máximo del trabajo es el límite superior del paralelismo para escalar la aplicación y conservar el estado.
Si modificas maxParallelism
una aplicación existente, la aplicación no podrá reiniciarse a partir de una instantánea anterior tomada con la anterior. maxParallelism
Solo puede reiniciar la aplicación sin una instantánea.
Si planea escalar la aplicación a un paralelismo superior a 128, debe configurarlo de forma explícita maxParallelism
en la aplicación.
La lógica de escalado automático evitará escalar una tarea de Flink a un paralelismo que supere el paralelismo máximo de la tarea.
Si utiliza un escalado automático personalizado o un escalado programado, configúrelos para que no superen el paralelismo máximo del trabajo.
Si escala manualmente la aplicación más allá del paralelismo máximo, la aplicación no podrá iniciarse.