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á.
Execução tolerante a falhas no Trino
A execução tolerante a falhas é um mecanismo no Trino que um cluster pode usar para mitigar falhas na consulta. Para fazer isso, ele repete as consultas ou as tarefas dos seus componentes quando elas apresentam falha. Quando a execução tolerante a falhas é ativada, os dados intermediários de troca são armazenados em spool e outro worker pode reutilizá-los no caso de uma interrupção do worker ou outra falha durante a execução da consulta.
Para obter mais informações sobre execução tolerante a falhas no Trino, consulte Project Tardigrade entrega na velocidade do Trino para os primeiros ETL usuários no blog do Trino
Configuração
A execução tolerante a falhas está desativada por padrão. Para ativar o atributo, defina a propriedade de configuração retry-policy
na classificação trino-config
como QUERY
ou TASK
com base na política de novas tentativas desejada, da seguinte maneira.
{"classification": "trino-config", "properties": { "retry-policy": "
QUERY
" } }
Uma política de novas tentativas QUERY
instrui o Trino a repetir uma consulta automaticamente quando ocorre um erro em um nó de processamento. Recomendamos que você use uma política de novas tentativas QUERY
quando a maior parte da workload do cluster do Trino incluir muitas consultas pequenas.
Uma política de novas tentativas TASK
instrui o Trino a tentar novamente tarefas de consulta individuais em caso de falha. Recomendamos essa política quando o Trino executa grandes consultas em lotes. O cluster pode tentar novamente tarefas menores na consulta com mais eficiência em vez de tentar novamente a consulta inteira.
Gerenciador de trocas
Um gerenciador de trocas armazena e gerencia dados em spool para execuções tolerantes a falhas. Ele usa armazenamento externo para armazenar dados despejados além do tamanho do buffer na memória. Você pode configurar um gerenciador do Exchange baseado em sistema de arquivos que armazena dados em spool em um local específico, como Amazon S3, sistemas compatíveis com Amazon S3 ou. HDFS
As EMR versões 6.9.0 e posteriores da Amazon incluem a trino-exchange-manager
classificação para configurar o gerenciador de câmbio. Essas versões também oferecem suporte HDFS para spooling.
Configurar o gerenciador de trocas
Use a classificação de configuração trino-exchange-manager
para configurar um gerenciador de trocas. Essa classificação cria internamente um arquivo de configuração etc/exchange-manager.properties
no coordenador e em todos os nós de processamento. A classificação também define a propriedade de configuração exchange-manager.name
como filesystem
.
Por padrão, a Amazon EMR lança a versão 6.9.0 e, posteriormente, é usada HDFS como gerente do Exchange. HDFSestá disponível nos EMR EC2 clusters da Amazon, e o spooling ocorre no trino-exchange/
diretório por padrão. Para usar as configurações padrão, faça a seguinte configuração:
{"Classification": "trino-exchange-manager" }
Se você quiser fornecer um local personalizado, defina as seguintes propriedades na classificação trino-exchange-manager
:
-
Defina
exchange.use-local-hdfs
comotrue
. -
exchange.base-directories
Defina como a localização do diretório personalizado emHDFS, por exemplo,exchange.base-directories=/exchange
. Se o diretório personalizado ainda não estiver dentroHDFS, a Amazon EMR o criará.
HDFSconfigurações do Exchange Manager
Com base nos resultados dos testes internos, recomendamos que você passe para o local HDFS para melhorar o desempenho da consulta em comparação com outros sistemas de arquivos baseados em nuvem. Você pode definir as seguintes configurações para o gerenciador de câmbio comHDFS.
Configuração | Descrição | Configuração padrão |
---|---|---|
|
Tamanho do bloco para HDFS armazenamento |
4 MB |
|
Lista de caminhos de arquivo a serem configurados HDFS |
Se |
Para obter propriedades adicionais de configuração de execução tolerantes a falhas e para obter informações sobre como configurar o Amazon S3 ou outros sistemas compatíveis com o Amazon S3 para spooling, consulte a página Execução tolerante a falhas
Considerações e limitações
-
Se você habilitar a execução tolerante a falhas, ela desativará as operações de
write
para conectores que não são compatíveis comwrite
quandoretry-policy
está definida. A partir da EMR versão 6.9.0 da Amazon, os conectores Delta Lake, Hive e Iceberg dão suporte às operações com.write
retry-policy
-
Se você usa o gerenciador de trocas e executa operações de E/S caras, suas consultas podem ter diminuição da performance enquanto o gerenciador de trocas transfere os dados intermediários para um armazenamento externo.