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à.
Implementazione della scalabilità delle applicazioni in Managed Service for Apache Flink
È possibile configurare l'esecuzione parallela delle attività e l'allocazione delle risorse per il servizio gestito da Amazon per Apache Flink, al fine di implementare il dimensionamento. Per informazioni su come Apache Flink pianifica le istanze parallele di attività, consulta Parallel Execution
Argomenti
Configura il parallelismo delle applicazioni e ParallelismPer KPU
È possibile configurare l'esecuzione parallela per le attività dell'applicazione servizio gestito per Apache Flink (leggere da un’origine o eseguire un operatore, per esempio) utilizzando le proprietà ParallelismConfiguration
:
-
Parallelism
: utilizza questa proprietà per impostare il parallelismo predefinito dell'applicazione di Apache Flink. Tutti gli operatori, le origini e i sink vengono eseguiti con questo parallelismo, a meno che non siano sovrascritti nel codice dell'applicazione. Il valore predefinito è1
, il valore massimo predefinito è256
. -
ParallelismPerKPU
— Utilizzate questa proprietà per impostare il numero di attività parallele che possono essere pianificate per unità di elaborazione Kinesis (KPU) dell'applicazione. Il valore predefinito è1
, il valore massimo predefinito è8
. Per le applicazioni che prevedono operazioni di blocco (ad esempio, I/O), un valore più elevato diParallelismPerKPU
porta al pieno utilizzo delle risorse. KPU
Nota
Il limite di Parallelism
è uguale a ParallelismPerKPU
volte il limite di KPUs (che ha un valore predefinito di 64). Il KPUs limite può essere aumentato richiedendo un aumento del limite. Per istruzioni su come richiedere un aumento del limite, consultare "Richiedere un aumento del limite" in Service Quotas.
Per informazioni sull'impostazione del parallelismo delle attività per un operatore specifico, consulta Impostazione del parallelismo: operatore
Allocazione delle unità di elaborazione Kinesis
Managed Service for Apache Flink fornisce capacità come. KPUs Un singolo ti KPU fornisce 1 v CPU e 4 GB di memoria. Per ogni unità KPU allocata, vengono forniti anche 50 GB di spazio di archiviazione delle applicazioni in esecuzione.
Managed Service for Apache Flink calcola il numero KPUs necessario per eseguire l'applicazione utilizzando le ParallelismPerKPU
proprietà Parallelism
and, nel modo seguente:
Allocated KPUs for the application = Parallelism/ParallelismPerKPU
Il servizio gestito per Apache Flink fornisce rapidamente risorse alle applicazioni in risposta ai picchi della velocità di trasmissione effettiva o di attività di elaborazione. Rimuove gradualmente le risorse dall'applicazione dopo il superamento del picco di attività. Per disabilitare l'allocazione automatica delle risorse, è sufficiente impostare il valore AutoScalingEnabled
su false
, come descritto in seguito in Aggiorna il parallelismo dell'applicazione.
Il limite predefinito KPUs per l'applicazione è 64. Per istruzioni su come richiedere un aumento di tale limite, consulta "Richiedere un aumento del limite" in Service Quotas.
Nota
KPUViene addebitato un costo aggiuntivo per scopi di orchestrazione. Per ulteriori informazioni, consulta il Piano tariffario del servizio gestito da Amazon per Apache Flink
Aggiorna il parallelismo dell'applicazione
Questa sezione contiene esempi di richieste di API azioni che impostano il parallelismo di un'applicazione. Per ulteriori esempi e istruzioni su come utilizzare i blocchi di richiesta con API azioni, consulta. Codice di esempio di Managed Service per Apache Flink API
Il seguente esempio di richiesta per l'azione CreateApplication
imposta il parallelismo durante la creazione di un'applicazione:
{ "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 } } } }
Il seguente esempio di richiesta per l'azione UpdateApplication
imposta il parallelismo per un'applicazione pre-esistente:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }
Il seguente esempio di richiesta per l'azione UpdateApplication
disabilita il parallelismo per un'applicazione pre-esistente:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }
maxParallelism considerazioni
Il parallelismo massimo che un lavoro Flink può scalare è limitato dal minimo maxParallelism
tra tutti gli operatori del lavoro. Ad esempio, se si dispone di un job semplice con solo una sorgente e un sink, e l'origine ha 16 e il sink ha 8, l'applicazione non può scalare oltre il parallelismo di 8. maxParallelism
Per sapere come viene calcolato il valore predefinito maxParallelism
di un operatore e come sovrascriverlo, consulta Impostazione del parallelismo massimo nella documentazione
Come regola di base, tieni presente che se non definisci maxParallelism
alcun operatore e avvii l'applicazione con un parallelismo inferiore o uguale a 128, tutti gli operatori avranno un parallelismo pari a 128. maxParallelism
Nota
Il parallelismo massimo del processo è il limite massimo di parallelismo per scalare l'applicazione mantenendo lo stato.
Se modifichi un'applicazione esistente, l'applicazione non sarà in grado maxParallelism
di riavviarsi da un'istantanea precedente scattata con la vecchia. maxParallelism
È possibile riavviare l'applicazione solo senza un'istantanea.
Se si prevede di scalare l'applicazione fino a un parallelismo maggiore di 128, è necessario impostarlo in modo esplicito nell'maxParallelism
applicazione.
La logica di scalabilità automatica impedirà il ridimensionamento di un lavoro Flink a un parallelismo superiore al parallelismo massimo del lavoro.
Se utilizzi una scalabilità automatica personalizzata o una scalabilità pianificata, configurale in modo che non superino il parallelismo massimo del lavoro.
Se scalate manualmente l'applicazione oltre il parallelismo massimo, l'applicazione non si avvia.