Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.
Revisión de recursos de aplicaciones de Managed Service para Apache Flink
En esta sección se describen los recursos del sistema que utiliza la aplicación. Comprender cómo Managed Service para Apache Flink aprovisiona y utiliza los recursos le ayudará a diseñar, crear y mantener una aplicación Managed Service para Apache Flink estable y de alto rendimiento.
Recursos de aplicaciones de Managed Service para Apache Flink
Managed Service para Apache Flink es un servicio de AWS que crea un entorno para alojar su aplicación Apache Flink. El servicio Managed Service para Apache Flink proporciona recursos mediante unidades denominadas Unidades de procesamiento de Kinesis (KPU).
Una KPU representa los siguientes recursos del sistema:
Un núcleo de CPU
4 GB de memoria, de los cuales un GB es memoria nativa y tres GB son memoria de pila
50 GB de espacio en disco
Las KPUs ejecutan las aplicaciones en distintas unidades de ejecución denominadas tareas y subtareas. Se puede pensar en una subtarea como el equivalente a un hilo.
El número de KPU disponibles para una aplicación es igual a la configuración Parallelism de la aplicación dividida por la configuración ParallelismPerKPU de la aplicación.
Para obtener más información acerca del paralelismo de las aplicaciones, consulte Implementación del escalado de aplicaciones.
Recursos de la aplicación de Apache Flink
El entorno Apache Flink asigna los recursos a su aplicación mediante unidades denominadas ranuras de tareas. Cuando Managed Service para Apache Flink asigna recursos a su aplicación, asigna uno o más ranuras de tareas de Apache Flink a una sola KPU. La cantidad de ranuras asignadas a una sola KPU es igual a la configuración de su aplicación ParallelismPerKPU. Para obtener más información acerca de las ranuras de tareas, consulte Job Scheduling
Paralelismo del operador
Se puede establecer el número máximo de subtareas que puede utilizar un operador. Este valor se denomina Paralelismo del operador. De forma predeterminada, el paralelismo de cada operador de su aplicación es igual al paralelismo de la aplicación. Esto significa que, de forma predeterminada, cada operador de su aplicación puede usar todas las subtareas disponibles en la aplicación si es necesario.
Se puede establecer el paralelismo de los operadores de su aplicación mediante el método setParallelism. Con este método, puede controlar la cantidad de subtareas que cada operador puede usar a la vez.
Para obtener más información, consulte Operators
Encadenamiento de operadores
Normalmente, cada operador utiliza una subtarea independiente para ejecutar, pero si varios operadores se ejecutan siempre en secuencia, el tiempo de ejecución puede asignarlos todos a la misma tarea. Este proceso se denomina Encadenamiento de operadores.
Se pueden encadenar varios operadores secuenciales en una sola tarea si todos funcionan con los mismos datos. A continuación se muestran algunos requisitos necesarios para que esto sea cierto:
Los operadores realizan un enrutamiento sencillo de uno a uno.
Todos los operadores tienen el mismo paralelismo de operadores.
Cuando su aplicación encadena a los operadores en una sola subtarea, conserva los recursos del sistema, ya que el servicio no necesita realizar operaciones de red ni asignar subtareas a cada operador. Para determinar si su aplicación utiliza el encadenamiento de operadores, consulte el gráfico de trabajo de la consola de Managed Service para Apache Flink. Cada vértice de la aplicación representa uno o más operadores. El gráfico muestra los operadores que se han encadenado como un solo vértice.