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à.
Esecuzione con tolleranza ai guasti in Trino
L'esecuzione a tolleranza d'errore è un meccanismo di Trino che un cluster può utilizzare per mitigare gli errori delle query. A tale scopo, ritenta le query o le attività dei componenti in caso di errore. Quando l'esecuzione a tolleranza d'errore è abilitata, i dati intermedi di scambio vengono sottoposti a spool e possono essere riutilizzati da un altro lavoratore in caso di interruzione del lavoratore o di altri errori durante l'esecuzione della query.
Per ulteriori informazioni sull'esecuzione con tolleranza ai guasti in Trino, consulta l'articolo Project Tardigrade delivers ETL at Trino speeds to early users
Configurazione
L'esecuzione a tolleranza d'errore è disabilitata per impostazione predefinita. Per abilitare la caratteristica, imposta la proprietà di configurazione retry-policy
nella classificazione trino-config
su QUERY
o TASK
in base alla policy di ripetizione desiderata, come segue.
{"classification": "trino-config", "properties": { "retry-policy": "
QUERY
" } }
Una policy di ripetizione QUERY
indica a Trino di ritentare automaticamente una query in caso di errore su un nodo worker. Ti consigliamo di utilizzare una policy di ripetizione QUERY
quando la maggior parte del carico di lavoro per il cluster Trino comprende molte query di piccole dimensioni.
Una policy di ripetizione TASK
indica a Trino di ritentare le singole attività di query in caso di errore. Ti consigliamo di utilizzare questa policy quando Trino esegue query in batch di grandi dimensioni. Il cluster può riprovare in modo più efficiente le attività più piccole all'interno della query anziché riprovare l'intera query.
Exchange Manager
Un Exchange Manager archivia e gestisce i dati sottoposti a spooling per un'esecuzione a tolleranza di errore. Utilizza l'archiviazione esterna per memorizzare i dati distribuiti oltre la dimensione del buffer in memoria. Puoi configurare un Exchange Manager basato su file system che archivia i dati sottoposti a spooling in una posizione specifica, ad esempio Amazon S3, sistemi compatibili con Amazon S3 o HDFS.
Amazon EMR versione 6.9.0 e successive include la classificazione trino-exchange-manager
per configurare Exchange Manager. Queste versioni supportano anche HDFS per lo spooling.
Configurazione di Exchange Manager
Utilizza la classificazione di configurazione trino-exchange-manager
per impostare un Exchange Manager. Questa classificazione crea internamente un file di configurazione etc/exchange-manager.properties
sul coordinatore e su tutti i nodi worker e imposta inoltre la proprietà di configurazione exchange-manager.name
su filesystem
.
Per impostazione predefinita, Amazon EMR rilascio 6.9.0 e successivi utilizzano HDFS come gestore di scambio. HDFS è disponibile nei cluster Amazon EC2 EMR e lo spooling si verifica nella directory per impostazione predefinita. trino-exchange/
Per utilizzare le impostazioni predefinite, imposta la seguente configurazione:
{"Classification": "trino-exchange-manager" }
Se desideri fornire una posizione personalizzata, imposta le seguenti proprietà nella classificazione di trino-exchange-manager
:
-
Imposta
exchange.use-local-hdfs
sutrue
. -
Imposta
exchange.base-directories
sulla posizione della directory personalizzata in HDFS, ad esempioexchange.base-directories=/exchange
. Se la directory personalizzata non è ancora presente in HDFS, Amazon EMR la creerà.
Configurazioni di Exchange Manager per HDFS
In base ai risultati dei test interni, ti consigliamo di utilizzare lo spooling da HDFS locale per migliorare le prestazioni delle query rispetto ad altri file system basati su cloud. È possibile impostare le seguenti configurazioni per Exchange Manager con HDFS.
Configurazione | Descrizione | Impostazioni predefinite |
---|---|---|
|
Dimensione del blocco per l'archiviazione HDFS |
4 MB |
|
Elenco dei percorsi dei file per configurare HDFS |
Se |
Per ulteriori proprietà di configurazione dell'esecuzione a tolleranza d'errore e per informazioni sulla configurazione di Amazon S3 o di altri sistemi compatibili con Amazon S3 per lo spooling, consulta la pagina Fault-tolerant execution
Considerazioni e limitazioni
-
Se abiliti l'esecuzione con tolleranza ai guasti, vengono disattivate le operazioni
write
per i connettori che non supportanowrite
quandoretry-policy
è impostato. A partire dal rilascio 6.9.0 di Amazon EMR, i connettori Delta Lake, Hive e Iceberg supportano le operazioniwrite
conretry-policy
. -
Se utilizzi Exchange Manager ed esegui operazioni di I/O costose, le prestazioni delle query potrebbero risultare compromesse durante lo spooling dei dati intermedi all'archiviazione esterna da parte di Exchange Manager.