EMRFSmetadados de visualização consistente - 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á.

EMRFSmetadados de visualização consistente

EMRFSA visualização consistente rastreia a consistência usando uma tabela do DynamoDB para rastrear objetos no Amazon S3 que foram sincronizados ou criados por. EMRFS Os metadados são usados para controlar todas as operações (ler, gravar, atualizar e copiar), e nenhum conteúdo real é armazenado neles. Esses metadados são usados para validar se os objetos ou metadados recebidos do Amazon S3 correspondem ao que se espera. Essa confirmação permite verificar EMRFS a consistência e read-after-write a consistência da lista para novas EMRFS gravações de objetos no Amazon S3 ou objetos sincronizados com. EMRFS Vários clusters podem compartilhar os mesmos metadados.

Como adicionar entradas aos metadados

Você pode usar os subcomandos sync ou import para adicionar entradas aos metadados. sync reflete o estado dos objetos do Amazon S3 em um caminho, enquanto import é usado estritamente para adicionar novas entradas aos metadados. Para ter mais informações, consulte EMRFSCLIReferência de comando.

Como verificar diferenças entre metadados e objetos no Amazon S3

Para verificar as diferenças entre os metadados e o Amazon S3, use diff o subcomando do. EMRFS CLI Para ter mais informações, consulte EMRFSCLIReferência de comando.

Como saber se as operações de metadados estão sendo limitadas

EMRFSdefine limites de capacidade de taxa de transferência padrão nos metadados para suas operações de leitura e gravação em 500 e 100 unidades, respectivamente. Grandes número de objetos ou buckets podem fazer com que as operações excedam essa capacidade e, nesse ponto, o DynamoDB limitará as operações. Por exemplo, um aplicativo pode causar EMRFS o lançamento de um ProvisionedThroughputExceededException se você executar uma operação que exceda esses limites de capacidade. Após a limitação, a EMRFS CLI ferramenta tenta gravar novamente na tabela do DynamoDB usando o backoff exponencial até que a operação seja concluída ou quando atingir o valor máximo de repetição para gravar objetos da Amazon no Amazon S3. EMR

É possível configurar seus próprios limites de capacidade de throughput. No entanto, o DynamoDB tem limites rígidos de partição de 3.000 unidades de capacidade de leitura RCUs () e 1.000 unidades de capacidade de gravação WCUs () por segundo para operações de leitura e gravação. Para evitar sync falhas causadas pela limitação, recomendamos que você limite a taxa de transferência das operações de leitura a menos de 3.000 RCUs e as operações de gravação a menos de 1.000. WCUs Para obter instruções sobre como definir limites personalizados de capacidade de throughput, consulte Configurar a visualização consistente.

Você também pode ver CloudWatch as métricas da Amazon para seus EMRFS metadados no console do DynamoDB, onde você pode ver o número de solicitações limitadas de leitura e gravação. Se você tiver um valor diferente de zero para solicitações limitadas, seu aplicativo poderá se beneficiar com o aumento da capacidade de throughput alocada para operações de leitura ou gravação. Você também poderá perceber um benefício de desempenho se constatar que as suas operações estão se aproximando da capacidade de throughput máxima alocada em leituras ou gravações por um período prolongado.

Características de produtividade para operações notáveis EMRFS

O padrão para operações de leitura e gravação é de 400 e 100 unidades de capacidade de throughput, respectivamente. As seguintes características de desempenho dão uma ideia de qual throughput é necessário para determinadas operações. Esses testes foram realizados usando um cluster m3.large de nó único. Todas as operações foram definidas em um único thread. O desempenho tem uma variação considerável com base em características específicas dos aplicativos e pode exigir experimentação para otimizar as operações do sistema de arquivos.

Operation Média read-per-second Média write-per-second
create (objeto) 26.79 6.70
delete (objeto) 10.79 10.79
delete (diretório contendo 1000 objetos) 21.79 338.40
getFileStatus(objeto) 34.70 0
getFileStatus(diretório) 19.96 0
listStatus(diretório contendo 1 objeto) 43.31 0
listStatus(diretório contendo 10 objetos) 44.34 0
listStatus(diretório contendo 100 objetos) 84.44 0
listStatus(diretório contendo 1.000 objetos) 308.81 0
listStatus(diretório contendo 10.000 objetos) 416.05 0
listStatus(diretório contendo 100.000 objetos) 823.56 0
listStatus(diretório contendo 1 milhão de objetos) 882.36 0
mkdir (contínuo por 120 segundos) 24.18 4.03
mkdir 12.59 0
rename (objeto) 19.53 4.88
rename (diretório contendo 1.000 objetos) 23.22 339.34
Para enviar uma etapa que limpa dados antigos do seu repositório de metadados

Os usuários podem querer remover entradas específicas nos metadados baseados no DynamoDB. Isso pode ajudar a reduzir os custos de armazenamento associados à tabela. Os usuários têm a capacidade de limpar manualmente ou programaticamente entradas específicas usando o subcomando. EMRFS CLI delete No entanto, se você excluir entradas dos metadados, EMRFS não fará mais nenhuma verificação de consistência.

A limpeza programática após a conclusão de um trabalho pode ser feita enviando uma etapa final ao seu cluster, que executa um comando no. EMRFS CLI Por exemplo, digite o seguinte comando para enviar uma etapa ao seu cluster para excluir todas as entradas com mais de dois dias.

aws emr add-steps --cluster-id j-2AL4XXXXXX5T9 --steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"] { "StepIds": [ "s-B12345678902" ] }

Use o StepId valor retornado para verificar o resultado da operação nos registros.