Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exécution tolérante aux pannes dans Trino
L'exécution tolérante aux pannes est un mécanisme de Trino qu'un cluster peut utiliser pour atténuer les échecs de requêtes. Pour ce faire, il réessaie les requêtes ou les tâches qui les composent lorsqu'elles échouent. Lorsque l'exécution tolérante aux pannes est activée, les données d'échange intermédiaires sont mises en attente et un autre utilisateur peut les réutiliser en cas de panne ou de toute autre erreur lors de l'exécution de la requête.
Pour plus d'informations sur l'exécution tolérante aux pannes dans Trino, voir Project Tardigrade fournit ETL à la vitesse de Trino aux premiers utilisateurs
Configuration
L'exécution tolérante aux pannes est désactivée par défaut. Pour activer la fonctionnalité, définissez la propriété de configuration retry-policy
dans la classification trino-config
sur QUERY
ou TASK
en fonction de la politique de réessai souhaitée, comme suit.
{"classification": "trino-config", "properties": { "retry-policy": "
QUERY
" } }
Une politiquede nouvelle tentative QUERY
indique à Trino de réessayer automatiquement une requête lorsqu'une erreur se produit sur un composant master. Nous vous recommandons d'utiliser une politique de QUERY
nouvelles tentatives lorsque la majeure partie de la charge de travail du cluster Trino comprend de nombreuses petites requêtes.
Une politiquede nouvelle tentative TASK
indique à Trino de réessayer des tâches de requête individuelles en cas d'échec. Nous recommandons cette politique lorsque Trino exécute des requêtes par lots de grande taille. Le cluster peut réessayer de manière plus efficace des tâches plus petites au sein de la requête plutôt que de réessayer l'ensemble de la requête.
Responsable des échanges
Un gestionnaire d'échange stocke et gère les données mises en bobine pour une exécution tolérante aux pannes. Il utilise un stockage externe pour stocker les données déversées au-delà de la taille de la mémoire tampon. Vous pouvez configurer un gestionnaire d'échange basé sur un système de fichiers qui stocke les données spoolées dans un emplacement spécifié, tel qu'Amazon S3, les systèmes compatibles avec Amazon S3 ou. HDFS
Les EMR versions 6.9.0 et ultérieures d'Amazon incluent la trino-exchange-manager
classification permettant de configurer le gestionnaire d'échange. Ces versions prennent également en charge HDFS le spouling.
Configuration du gestionnaire d'échange
Utilisez la classification de configuration trino-exchange-manager
pour configurer un gestionnaire d'échange. Cette classification crée en interne un fichier de configuration etc/exchange-manager.properties
sur le coordinateur et tous les nœuds de travail. La classification définit également la propriété de configuration exchange-manager.name
sur filesystem
.
Par défaut, les EMR versions 6.9.0 et ultérieures d'Amazon sont utilisées HDFS comme gestionnaire d'échange. HDFSest disponible dans les EMR EC2 clusters Amazon, et le spooling se produit par défaut dans le trino-exchange/
répertoire. Pour utiliser les paramètres par défaut, définissez la configuration suivante :
{"Classification": "trino-exchange-manager" }
Si vous souhaitez fournir un emplacement personnalisé, définissez les propriétés suivantes dans la classification trino-exchange-manager
:
-
Définissez
exchange.use-local-hdfs
surtrue
. -
Définissez
exchange.base-directories
l'emplacement du répertoire personnalisé dansHDFS, par exemple,exchange.base-directories=/exchange
. Si le répertoire personnalisé n'y figure pas déjàHDFS, Amazon le EMR créera.
HDFSconfigurations du gestionnaire d'échange
Sur la base des résultats de tests internes, nous vous recommandons de passer au mode local HDFS pour obtenir de meilleures performances de requête par rapport aux autres systèmes de fichiers basés sur le cloud. Vous pouvez définir les configurations suivantes pour le gestionnaire d'échange avecHDFS.
Configuration | Description | Paramètre par défaut |
---|---|---|
|
Taille des blocs pour le HDFS stockage |
4 Mo |
|
Liste des chemins de fichiers à configurer HDFS |
Dans |
Pour d'autres propriétés de configuration d'exécution tolérantes aux pannes et pour savoir comment configurer Amazon S3 ou d'autres systèmes compatibles avec Amazon S3 pour le spoulage, consultez la page d'exécution tolérante aux pannes
Considérations et restrictions
-
Si vous activez l'exécution tolérante aux pannes, cela désactive les opérations
write
pour les connecteurs qui ne prennent pas en chargewrite
lorsqueretry-policy
est défini. Depuis la EMR version 6.9.0 d'Amazon, les connecteurs Delta Lake, Hive et Iceberg prennent en chargewrite
les opérations avec.retry-policy
-
Si vous utilisez Exchange Manager et que vous effectuez des opérations d'E/S coûteuses, les performances de vos requêtes risquent de se dégrader tandis qu'Exchange Manager envoie les données intermédiaires vers un stockage externe.