Noções básicas sobre como a visualização consistente do EMRFS rastreia objetos no Amazon S3 - Amazon EMR

Noções básicas sobre como a visualização consistente do EMRFS rastreia objetos no Amazon S3

O EMRFS cria uma visualização consistente de objetos no Amazon S3, adicionando informações sobre esses objetos aos metadados do EMRFS. O EMRFS adiciona essas listagens para seus metadados quando:

  • Um objeto gravado pelo EMRFS no decurso de um trabalho do Amazon EMR.

  • Um objeto é sincronizado com ou importado para os metadados do EMRFS usando a CLI do EMRFS.

Objetos lidos pelo EMRFS não são automaticamente adicionados aos metadados. Quando o EMRFS exclui um objeto, ainda permanece uma listagem nos metadados com um estado excluído até que essa listagem seja limpa usando a CLI do EMRFS. Para saber mais sobre a CLI, consulte Referência de comando da CLI do EMRFS. Para obter mais informações sobre como limpar listas nos metadados do EMRFS, consulte Metadados da visualização consistente do EMRFS.

Para cada operação do Amazon S3, o EMRFS verifica os metadados para obter informações sobre o conjunto de objetos na visualização consistente. Se o EMRFS descobrir que o Amazon S3 está inconsistente durante uma dessas operações, ele repetirá a operação de acordo com os parâmetros definidos nas propriedades da configuração de emrfs-site. Depois de esgotar as tentativas, o EMRFS lançará uma ConsistencyException ou registrará a exceção em log e continuará o fluxo de trabalho. Para obter mais informações sobre a lógica de novas tentativas, consulte Lógica de novas tentativas. Você pode encontrar ConsistencyExceptions nos seus logs, por exemplo:

  • listStatus: nenhum objeto do Amazon S3 para o item de metadados /S3_bucket/dir/object

  • getFileStatus: a chave dir/file está presente nos metadados, mas não no Amazon S3

Se você excluir um objeto diretamente do Amazon S3 que é acompanhado pela visualização de consistência do EMRFS, o EMRFS tratará o objeto como inconsistente, pois ele ainda estará listado nos metadados como presente no Amazon S3. Se os metadados ficarem fora de sincronia com os objetos que estão sendo acompanhados pelo EMRFS no Amazon S3, você poderá usar o subcomando sync da CLI do EMRFS para redefinir os metadados para que reflitam o Amazon S3. Para descobrir discrepâncias entre os metadados e o Amazon S3, use o diff. Por fim, o EMRFS só tem uma visualização consistente dos objetos referenciados nos metadados. Pode haver outros objetos no mesmo caminho do Amazon S3 que não estão sendo controlados. Quando o EMRFS lista os objetos em um caminho do Amazon S3, ele retorna o superconjunto dos objetos que estão sendo controlados nos metadados e aqueles no caminho do Amazon S3.