Recursos do aplicativo - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Recursos do aplicativo

Esta seção descreve os recursos do sistema que seu aplicativo usa. Entender como o Managed Service for Apache Flink provisiona e usa recursos ajudará você a projetar, criar e manter um Managed Service estável e com desempenho para o aplicativo Apache Flink.

Serviço gerenciado para recursos do aplicativo Apache Flink

O Managed Service for Apache Flink é um AWS serviço que cria um ambiente para hospedar seu aplicativo Apache Flink. O serviço do Managed Service for Apache Flink fornece recursos usando unidades chamadas Kinesis Processing Units (KPUs).

Uma KPU representa os seguintes recursos do sistema:

  • Um Núcleo de CPU

  • 4 GB de memória, dos quais um GB é memória nativa e três GB são memória heap

  • 50 GB de espaço em disco

As KPUs executam aplicativos em unidades de execução distintas chamadas tarefas e subtarefas. Você pode pensar em uma subtarefa como o equivalente a um thread.

O número de KPUs disponíveis para um aplicativo é igual à configuração Parallelism do aplicativo, dividido pela configuração ParallelismPerKPU do aplicativo.

Para obter mais informações sobre paralelismo de aplicativo, consulte Escalabilidade.

O ambiente Apache Flink aloca recursos para seu aplicativo usando unidades chamadas slots de tarefas. Quando o Managed Service for Apache Flink aloca recursos para seu aplicativo, ele atribui um ou mais slots de tarefas do Apache Flink a uma única KPU. O número de slots atribuídos a uma única KPU é igual à configuração ParallelismPerKPU do seu aplicativo. Para obter mais informações sobre slots de tarefas, consulte Job Scheduling na documentação do Apache Flink.

Você pode definir o número máximo de subtarefas que um operador pode usar. Esse valor é chamado de Paralelismo do operador. Por padrão, o paralelismo de cada operador em seu aplicativo é igual ao paralelismo do aplicativo. Isso significa que, por padrão, cada operador em seu aplicativo pode usar todas as subtarefas disponíveis no aplicativo, se necessário.

Você pode definir o paralelismo dos operadores em seu aplicativo usando o método setParallelism. Usando esse método, você pode controlar o número de subtarefas que cada operador pode usar ao mesmo tempo.

Para obter mais informações sobre operadores, consulte Operadores na documentação do Apache Flink.

Normalmente, cada operador usa uma subtarefa separada para executar, mas se vários operadores sempre forem executados em sequência, o runtime poderá atribuir todos à mesma tarefa. Esse processo é chamado de Encadeamento de operadores.

Vários operadores sequenciais podem ser encadeados em uma única tarefa se todos operarem com os mesmos dados. A seguir encontram-se alguns dos critérios necessários para que isso ocorra:

  • Os operadores fazem um encaminhamento simples de 1 para 1.

  • Todos os operadores têm o mesmo paralelismo de operadores.

Quando seu aplicativo encadeia operadores em uma única subtarefa, ele conserva os recursos do sistema, porque o serviço não precisa realizar operações de rede e alocar subtarefas para cada operador. Para determinar se seu aplicativo está usando o encadeamento de operadores, veja o gráfico de tarefas no console do Managed Service for Apache Flink. Cada vértice no aplicativo representa um ou mais operadores. O gráfico mostra operadores que foram encadeados como um único vértice.