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á.
S3A MagicV2 Committer
Com o lançamento do EMR-6.15.0, o Amazon EMR apresenta um novo tipo de committer S3A conhecido como MagicV2 committer. Para obter informações completas sobre esse recurso, consulte as seções relevantes da documentação.
O MagicV2 Committer representa uma implementação aprimorada do código aberto MagicCommitter
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 commit no Amazon S3, resultando em maior economia. Além disso, o MagicV2 committer oferece maior flexibilidade, permitindo a substituição de caminhos de arquivos em várias threads durante o processo de commit.
Habilitar o MagicV2 Committer
Para habilitar o MagicV2 committer, passe a seguinte configuração na configuração do seu trabalho ou use a configuração core-site 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 workloads que exigem a substituição do diretório existente antes de confirmar ou gravar os novos arquivos, é necessário a seguinte configuração adicional, juntamente 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 configuração threads é 20. No entanto, esse parâmetro deve ser ajustado quando houver um grande número de diretórios a serem sobrescritos para obter melhor performance. Isso está disponível apenas no EMR-7.2.0 e versões superiores.
Considerações
-
Se a Java Virtual Machine (JVM) travar ou for encerrada enquanto as tarefas estiverem em execução e gravando dados no Amazon S3, é mais provável que os uploads em várias partes incompletos sejam abandonados. Por esse motivo, ao usar o MagicV2 committer, certifique-se de seguir as práticas recomendadas para gerenciar uploads em várias partes com falha. Para obter mais informações, consulte a seção Práticas recomendadas para trabalhar com buckets do 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 MagicV2 Committer consome uma pequena quantidade de memória para cada arquivo gravado por uma tentativa de tarefa até que a tarefa seja confirmada ou cancelada. Na maioria dos trabalhos, a quantidade de memória consumida é insignificante. Porém, em alguns casos em que um único processo de executor lida com um grande número de tarefas ao mesmo tempo, 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.