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