Trabalhando com sistemas de armazenamento e arquivos com a Amazon EMR - 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á.

Trabalhando com sistemas de armazenamento e arquivos com a Amazon EMR

A Amazon EMR e o Hadoop fornecem uma variedade de sistemas de arquivos que você pode usar ao processar etapas do cluster. Você especifica qual sistema de arquivos usar pelo prefixo do URI usado para acessar os dados. Por exemplo, s3://amzn-s3-demo-bucket1/path faz referência a um bucket do Amazon S3 usando. EMRFS A tabela a seguir lista os sistemas de arquivos disponíveis e inclui as recomendações sobre quando é melhor usar cada um deles.

A Amazon EMR e o Hadoop normalmente usam dois ou mais dos seguintes sistemas de arquivos ao processar um cluster. HDFSe EMRFS são os dois principais sistemas de arquivos usados com a AmazonEMR.

Importante

A partir da EMR versão 5.22.0 da Amazon, a Amazon EMR usa o AWS Signature versão 4 exclusivamente para autenticar solicitações para o Amazon S3. As EMR versões anteriores da Amazon usam a AWS Signature Version 2 em alguns casos, a menos que as notas de lançamento indiquem que a Signature Version 4 é usada exclusivamente. Para obter mais informações, consulte Autenticação de solicitações (AWS assinatura versão 4) e Solicitações de autenticação (AWS assinatura versão 2) no Guia do desenvolvedor do Amazon Simple Storage Service.

Sistema de arquivos Prefixo Descrição
HDFS hdfs:// (ou sem prefixo)

HDFSé um sistema de arquivos distribuído, escalável e portátil para o Hadoop. Uma vantagem HDFS é o reconhecimento de dados entre os nós do cluster do Hadoop que gerenciam os clusters e os nós do cluster do Hadoop que gerenciam as etapas individuais. Para obter mais informações, consulte a documentação do Hadoop.

HDFSé usado pelos nós principal e central. Uma de suas vantagens é a velocidade; uma desvantagem é ser um armazenamento temporário que é reivindicado quando o cluster é encerrado. É melhor usado para armazenamento em cache dos resultados intermediários produzidos pelas etapas de um fluxo de trabalho.

EMRFS s3://

EMRFSé uma implementação do sistema de arquivos Hadoop usado para ler e gravar arquivos regulares da Amazon EMR diretamente no Amazon S3. EMRFSfornece a conveniência de armazenar dados persistentes no Amazon S3 para uso com o Hadoop, além de fornecer recursos como criptografia, consistência e consistência de listas no servidor do Amazon S3. read-after-write

nota

Anteriormente, a Amazon EMR usava s3n os sistemas de s3a arquivos e. Embora ambos ainda funcionem, recomendamos que você use o s3 URI esquema para obter o melhor desempenho, segurança e confiabilidade.

sistema de arquivos local

O sistema de arquivos local é a um disco conectado localmente. Quando um cluster Hadoop é criado, cada nó é criado a partir de uma EC2 instância que vem com um bloco pré-configurado de armazenamento em disco pré-conectado chamado armazenamento de instâncias. Os dados nos volumes de armazenamento da instância persistem somente durante a vida útil da EC2 instância. Os volumes de armazenamento da instância são ideais para armazenar dados temporários que mudam continuamente, tais como buffers, caches, dados temporários e outros conteúdos temporários. Para obter mais informações, consulte Armazenamento de EC2 instâncias da Amazon.

O sistema de arquivos local é usado porHDFS, mas o Python também é executado a partir do sistema de arquivos local e você pode optar por armazenar arquivos de aplicativos adicionais em volumes de armazenamento de instâncias.

(Herdado) Sistema de arquivos de bloco do Amazon S3 s3bfs://

O sistema de arquivos de bloco do Amazon S3 é um sistema de armazenamento de arquivos herdado. Não recomendamos em hipótese alguma o uso de deste sistema.

Importante

Não recomendamos que você use esse sistema de arquivos pois ele pode acionar um comportamento de disputa que pode causar uma falha no cluster. No entanto, ele pode ser necessário para aplicativos herdados.

Acessar sistemas de arquivo

Você especifica qual sistema de arquivos usar pelo prefixo do identificador uniforme de recursos (URI) usado para acessar os dados. Os procedimentos a seguir ilustram como fazer referência a vários tipos diferentes de sistemas de arquivos.

Para acessar um local HDFS
  • Especifique o hdfs:/// prefixo noURI. A Amazon EMR resolve caminhos que não especificam um prefixo no URI para o local. HDFS Por exemplo, as duas opções a seguir URIs seriam resolvidas no mesmo local emHDFS.

    hdfs:///path-to-data /path-to-data
Para acessar um controle remoto HDFS
  • Inclua o endereço IP do nó principal noURI, conforme mostrado nos exemplos a seguir.

    hdfs://master-ip-address/path-to-data master-ip-address/path-to-data
Acessar o Amazon S3
  • Use o prefixo s3://.

    s3://bucket-name/path-to-file-in-bucket
Acessar o sistema de arquivos de bloco do Amazon S3
  • Use apenas para aplicações herdadas que exigem o sistema de arquivos de bloco do Amazon S3. Para acessar ou armazenar dados com esse sistema de arquivos, use o s3bfs:// prefixo noURI.

    O sistema de arquivos de bloco do Amazon S3 é um sistema de arquivos antigo que foi usado para oferecer suporte a carregamentos maiores do que 5 GB de tamanho para o Amazon S3. Com a funcionalidade de upload em várias partes que a Amazon EMR fornece por meio do AWS JavaSDK, você pode fazer upload de arquivos de até 5 TB para o sistema de arquivos nativo do Amazon S3, e o sistema de arquivos em blocos do Amazon S3 está obsoleto.

    Atenção

    Como esse sistema de arquivos legado pode criar condições de corrida que podem corromper o sistema de arquivos, você deve evitar esse formato e usá-lo EMRFS em seu lugar.

    s3bfs://bucket-name/path-to-file-in-bucket