Como trabalhar com armazenamento e sistemas de arquivos com o 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á.

Como trabalhar com armazenamento e sistemas de arquivos com o Amazon EMR

O Amazon EMR e o Hadoop oferecem a você uma variedade de sistemas de arquivos para processar as etapas do cluster. Você especifica o sistema de arquivos a ser usado pelo prefixo do URI que acessa os dados. Por exemplo, s3://amzn-s3-demo-bucket1/path faz referência a um bucket do Amazon S3 usando o S3A (desde o lançamento do EMR-7.10.0). A tabela a seguir lista os sistemas de arquivos disponíveis e inclui as recomendações sobre quando é melhor usar cada um deles.

O Amazon EMR e o Hadoop normalmente usam dois ou mais dos seguintes sistemas de arquivos no processamento de clusters. O HDFS e o S3A são os dois principais sistemas de arquivos usados com o Amazon EMR.

Importante

A partir da versão 5.22.0 do Amazon EMR, o Amazon EMR AWS usa o Signature versão 4 exclusivamente para autenticar solicitações para o Amazon S3. As versões anteriores do Amazon EMR usam o AWS Signature versão 2 em alguns casos, a menos que as notas de lançamento indiquem que o Signature versão 4 é usado 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)

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

O HDFS é usado pelos nós principais e core. 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.

S3A s3://, s3a://, s3n://

O sistema de arquivos Hadoop S3A é um conector S3 de código aberto que permite que o Apache Hadoop e seu ecossistema interajam diretamente com o armazenamento do Amazon S3. Ele permite que os usuários leiam e gravem dados em buckets do S3 usando operações de arquivo compatíveis com o Hadoop, fornecendo uma integração perfeita entre os aplicativos do Hadoop e o armazenamento em nuvem.

nota

Antes do EMR-7.10.0, o Amazon EMR usava o EMRFS para os esquemas s3://e s3n://.

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 HDFS usa o sistema de arquivos local, mas o Python também é executado com base no sistema de arquivos local. Você pode optar por armazenar outros arquivos de aplicações em volumes de armazenamento de instância.

(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 o sistema de arquivos a ser usado com o prefixo do Uniform Resource Identifier (URI) que acessa os dados. Os procedimentos a seguir ilustram como fazer referência a vários tipos diferentes de sistemas de arquivos.

Para acessar um HDFS local
  • Especifique o prefixo hdfs:/// no URI. O Amazon EMR substitui os caminhos que não especificam um prefixo no URI pelo HDFS local. Por exemplo, os dois itens a seguir URIs seriam resolvidos no mesmo local no HDFS.

    hdfs:///path-to-data /path-to-data
Para acessar um HDFS remoto
  • Inclua o endereço IP do nó principal no URI, como 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 este sistema de arquivos, use o prefixo s3bfs:// no URI.

    O sistema de arquivos em bloco do Amazon S3 é um sistema de arquivos legado que foi usado para suportar uploads maiores que 5 GB para o Amazon S3. Com a funcionalidade de upload em várias partes que o Amazon EMR fornece por meio AWS do Java SDK, você pode carregar arquivos grandes para o sistema de arquivos nativo do Amazon S3, e o sistema de arquivos em blocos do Amazon S3 está obsoleto. Para obter mais informações sobre o upload de várias partes para o EMR, consulte Configurar o upload de várias partes para o Amazon S3. Para obter mais informações sobre os limites de tamanho de objetos e peças do S3, consulte os limites de upload de várias partes do Amazon S3 no Guia do usuário do Amazon Simple Storage Service.

    Atenção

    Como esse sistema de arquivos herdado pode criar um comportamento de disputa que pode corromper o sistema de arquivos, você deve evitar esse formato e usar o EMRFS em seu lugar.

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