Risorse dell'applicazione - Servizio gestito per Apache Flink

Il servizio gestito da Amazon per Apache Flink era precedentemente noto come Analisi dei dati Amazon Kinesis per Apache Flink.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risorse dell'applicazione

Questa sezione descrive le risorse di sistema utilizzate dall'applicazione. Comprendere come il servizio gestito per Apache Flink alloca e utilizza le risorse è fondamentale per progettare, creare e mantenere un'applicazione di servizio gestito per Apache Flink efficiente e stabile.

Servizio gestito per le risorse delle applicazioni Apache Flink

Managed Service for Apache Flink è un AWS servizio che crea un ambiente per ospitare l'applicazione Apache Flink. Il servizio gestito per Apache Flink fornisce risorse utilizzando unità denominate Kinesis Processing Units (KPU), ossia unità di elaborazione Kinesis.

Una KPU rappresenta le seguenti risorse di sistema:

  • un core CPU;

  • 4 GB di memoria, di cui un GB di memoria nativa e tre GB di memoria heap;

  • 50 GB di spazio su disco.

Le KPU eseguono le applicazioni in unità di esecuzione distinte denominate attività e attività secondarie. Un’attività secondaria rappresenta l'equivalente di un thread.

Il numero di KPU disponibili per un'applicazione è uguale all'impostazione Parallelism dell'applicazione divisa per l'impostazione ParallelismPerKPU dell'applicazione.

Per ulteriori informazioni sul parallelismo delle applicazioni, consulta Dimensionamento.

L'ambiente Apache Flink alloca le risorse per l'applicazione utilizzando unità chiamate slot di attività. Quando il servizio gestito per Apache Flink alloca risorse per l'applicazione, assegna uno o più slot di attività di Apache Flink a una singola KPU. Il numero di slot assegnati a una singola KPU è uguale all'impostazione ParallelismPerKPU dell'applicazione. Per ulteriori informazioni sugli slot di attività, vedere Job Scheduling nella documentazione di Apache Flink.

È possibile impostare il numero massimo di attività secondarie che un operatore può utilizzare. Questo valore è denominato parallelismo degli operatori. Per impostazione predefinita, il parallelismo di ogni operatore dell'applicazione è uguale al parallelismo dell'applicazione. Ciò significa che, per impostazione predefinita, ove necessario ogni operatore dell'applicazione può utilizzare tutte le attività secondarie in essa disponibili.

È possibile impostare il parallelismo degli operatori nell'applicazione utilizzando il metodo setParallelism. Questo metodo consente di controllare il numero di attività secondarie che ogni operatore può utilizzare contemporaneamente.

Per ulteriori informazioni sugli operatori, consulta Operatori nella documentazione di Apache Flink.

Solitamente ogni operatore utilizza un’attività secondaria separata; tuttavia se più operatori agiscono sempre in sequenza il runtime può assegnarli tutti alla stessa attività. Questo processo si chiama concatenazione degli operatori.

Se operano tutti sugli stessi dati, è possibile concatenare diversi operatori in sequenza in un'unica attività. Di seguito sono riportati alcuni criteri necessari affinché ciò accada:

  • gli operatori eseguono un trasferimento semplice 1 a 1;

  • tutti gli operatori dispongono dello stesso parallelismo degli operatori.

Quando l'applicazione concatena gli operatori in un'unica attività secondaria conserva le risorse di sistema, poiché il servizio non ha bisogno di eseguire operazioni di rete e allocare attività secondarie a ciascun operatore. Per determinare se l’applicazione utilizza la concatenazione degli operatori è sufficiente consultare il grafico dei processi nella console del servizio gestito per Apache Flink. Ogni vertice dell'applicazione rappresenta uno o più operatori. Il grafico mostra gli operatori che sono stati concatenati in un unico vertice.