Execução tolerante a falhas no Trino - Amazon EMR

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 como true.

  • exchange.base-directoriesDefina 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

exchange.hdfs.block-size

Tamanho do bloco para HDFS armazenamento

4 MB

hdfs.config.resources

Lista de caminhos de arquivo a serem configurados HDFS

Se exchange.use-local-hdfs é true, são usados os caminhos para arquivos core-site.xml, hdfs-site.xml; caso contrário, null

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 da documentação do Trino.

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 com write quando retry-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.