Commitente S3A MagicV2 - 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á.

Commitente S3A MagicV2

Com a versão EMR-6.15.0, o Amazon EMR introduz um novo tipo de committer S3A conhecido como committer MagicV2. Para obter informações abrangentes sobre esse recurso, consulte as seções relevantes da documentação.

O MagicV2 Committer representa uma implementação aprimorada do código aberto MagicCommitter, projetada especificamente para otimizar a gravação de arquivos no Amazon S3 por meio do sistema de arquivos S3A. Como seu antecessor, ele aproveita os recursos de upload em várias partes do Amazon S3 para eliminar a lista tradicional e renomear as operações normalmente associadas às fases de confirmação de trabalhos e tarefas.

Em comparação com o original MagicCommitter, o committer MagicV2 demonstra desempenho superior gravando arquivos no local de saída do trabalho durante a fase de confirmação da tarefa, em vez da fase de confirmação do trabalho. Essa abordagem permite a gravação distribuída de arquivos e elimina a necessidade de armazenamento temporário de metadados de confirmação no Amazon S3, resultando em melhor relação custo-benefício. Além disso, o committer MagicV2 oferece maior flexibilidade ao permitir a substituição do caminho do arquivo em vários threads durante o processo de confirmação.

Ativar o MagicV2 Committer

Para habilitar o committer MagicV2, passe a seguinte configuração na configuração do seu trabalho ou use a configuração do site principal para definir a propriedade. Para obter mais informações, consulte Configure applications.

mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true

Para cargas de trabalho que exigem a substituição do diretório existente antes de confirmar ou gravar os novos arquivos, a configuração adicional a seguir é necessária, junto com a configuração mencionada anteriormente.

fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=thread size

O valor padrão para a threads configuração é20. No entanto, esse parâmetro deve ser ajustado quando há um grande número de diretórios a serem substituídos para melhorar o desempenho. Isso está disponível somente no EMR-7.2.0 e superior.

Considerações

  • Se a Java Virtual Machine (JVM) falhar ou for interrompida enquanto as tarefas estão sendo executadas e gravando dados no Amazon S3, é mais provável que os uploads incompletos de várias partes sejam deixados para trás. Por esse motivo, ao usar o committer MagicV2, certifique-se de seguir as melhores práticas para gerenciar uploads de várias partes que falharam. Para obter mais informações, consulte a seção Melhores práticas para trabalhar com buckets do Amazon S3 no Guia de gerenciamento do Amazon EMR.

  • Se um trabalho falhar, todos os arquivos confirmados pelas tarefas bem-sucedidas ainda estarão visíveis no caminho de destino. Nesses casos, o usuário precisará limpar manualmente os arquivos confirmados antes de executar novamente o trabalho no mesmo caminho de destino.

  • O committer do MagicV2 consome uma pequena quantidade de memória para cada arquivo gravado por uma tentativa de tarefa até que a tarefa seja confirmada ou abortada. Na maioria dos trabalhos, a quantidade de memória consumida é insignificante. No entanto, em alguns casos em que um único processo executor manipula um grande número de tarefas simultaneamente, isso pode sobrecarregar a memória e o contêiner ou executor pode ficar sem memória (OOM). Aumentar a memória do contêiner ou do executor deve resolver esse problema.