Ir para o conteúdo principal

Hadoop Distributed File System (HDFS)

Experimente o Databricks gratuitamente

HDFS

HDFS (Hadoop Distributed File System) é o principal sistema de armazenamento usado pelos aplicativos Hadoop. Este framework de código aberto funciona fornecendo transferência rápida de dados entre nós. É frequentemente usado por empresas que precisam lidar e armazenar big data. O HDFS é um componente-chave em muitos sistemas Hadoop como meio de gerenciar big data e dar suporte à análise de big data.

Muitas empresas ao redor do mundo estão usando HDFS, mas o que é exatamente HDFS? E por que ele é necessário? Vamos nos aprofundar no que é HDFS e por que ele é útil para empresas.

O que é o HDFS?

HDFS é um acrônimo para Hadoop Distributed File System, um sistema de arquivos distribuído projetado para ser executado em hardware comum.

O HDFS foi projetado para ser tolerante a falhas e implantável em hardware de baixo custo. Fornece alto rendimento para dados de aplicativos e é adequado para aplicativos com grandes conjuntos de dados. Ele também permite acesso por streaming aos dados do sistema de arquivos do Apache Hadoop.

Então, o que é Hadoop? E como ele se diferencia do HDFS? A diferença mais importante entre o Hadoop e o HDFS é que o Hadoop é um framework de código aberto que permite armazenar, processar e analisar dados, enquanto o HDFS é o sistema de arquivos do Hadoop que fornece acesso aos seus dados. Basicamente, isso significa que o HDFS é um módulo do Hadoop.

Vamos dar uma olhada na arquitetura do HDFS:

hdsarchitecture image

Como podemos ver, ele se concentra em NameNodes e DataNodes. Um NameNode é um hardware com sistema operacional e software GNU/Linux. Como um servidor mestre, o sistema de arquivos distribuído do Hadoop pode gerenciar arquivos, controlar o acesso do cliente aos arquivos e realizar operações de arquivos no exterior, como renomear, abrir e fechar arquivos.

Um DataNode é um hardware com sistema operacional GNU/Linux e software DataNode. Cada nó em um cluster HDFS tem um DataNode. Esses nós ajudam a controlar a retenção de dados no sistema, executando operações no sistema de arquivos quando solicitado pelos clientes, criando, replicando, bloqueando arquivos etc., quando instruído a fazê-lo pelos NameNodes.

O significado e a finalidade do HDFS é atingir os seguintes objetivos:

  • Gerenciamento de grandes conjuntos de dados: organizar e armazenar conjuntos de dados pode ser um tópico difícil de lidar. O HDFS é usado para gerenciar aplicativos que lidam com enormes conjuntos de dados. Para fazer isso, o HDFS deve ter centenas de nós por cluster.
  • Detecção de falhas: como o HDFS inclui uma grande quantidade de hardware comum, ele deve ter técnicas para verificar e detectar falhas de forma rápida e eficaz. A falha de componentes é comum.
  • Eficiência de hardware: pode reduzir o tráfego de rede e aumentar a velocidade de processamento quando grandes conjuntos de dados estão envolvidos.

História do HDFS

Qual é a origem do Hadoop? O design do HDFS é baseado no Google File System. Ele foi originalmente construído como infraestrutura para o projeto de mecanismo de busca na web Apache Nutch, e desde então foi integrado ao ecossistema Hadoop.

Quando a internet começou a se popularizar, os web crawlers começaram a aparecer como uma forma de as pessoas buscarem informações nas páginas da web. Como resultado, nasceram vários mecanismos de busca, como Yahoo e Google.

Isso também criou outro mecanismo de busca chamado “Nutch”, que distribuía dados e cálculos em vários computadores simultaneamente. O Nutch então mudou para o Yahoo e se dividiu em dois. O Apache Spark e o Hadoop agora são entidades separadas. Enquanto o Hadoop foi desenvolvido para processamento em batch, o Spark foi desenvolvido para lidar com dados em tempo real com eficiência.

Hoje, a estrutura e o framework do Hadoop são mantidos pela Apache Software Foundation, uma comunidade global de desenvolvedores e colaboradores de software.

É daí que vem o HDFS, com o objetivo de substituir as soluções de armazenamento de hardware por um método melhor e mais eficiente: um sistema de arquivamento virtual. Quando o MapReduce apareceu pela primeira vez, era o único mecanismo de processamento distribuído que podia tirar proveito do HDFS. Recentemente, componentes de serviços de dados alternativos ao Hadoop, como HBase e Solr, também usam HDFS para armazenar dados.

O que é HDFS no mundo do big data?

Então, o que é big data e como o HDFS atua nisso? Big data é um termo geral que se refere a dados difíceis de armazenar, processar e analisar. Big data do HDFS são dados organizados no sistema de arquivamento HDFS.

O Hadoop, como você sabe, é um framework que opera em processamento paralelo e armazenamento distribuído. Ele pode ser usado para classificar e armazenar big data que não pode ser armazenado usando métodos tradicionais.

Na verdade, o Hadoop é o software mais comumente usado para big data, com empresas como Netflix, Expedia e British Airways usando ativamente o Hadoop para armazenamento de dados. O HDFS em big data é extremamente importante, pois agora é o método preferido de muitas empresas para armazenar seus dados.

Existem cinco elementos principais de big data organizados pelos serviços HDFS:

  • Velocidade: a velocidade com que os dados são gerados, coletados e analisados.
  • Volume: quantidade de dados gerados.
  • Variedade: vários tipos de dados, como estruturados, não estruturados etc.
  • Veracidade: a qualidade e a precisão dos dados.
  • Valor: como esses dados podem ser usados para fornecer insights sobre processos de negócios.

Vantagens do sistema de arquivos distribuídos Hadoop

HDFS, um subprojeto de código aberto do Hadoop, oferece cinco benefícios principais para trabalhar com big data:

  1. Tolerância a falhas: o HDFS foi projetado para detectar e se recuperar automaticamente de falhas, garantindo a continuidade e a confiabilidade do sistema.
  2. Velocidade: a arquitetura de cluster pode sustentar 2 GB/s de dados.
  3. Acesso a mais tipos de dados: especialmente dados de streaming. Foi projetado para processar grandes quantidades de dados em batch, resultando em altas taxas de transferência de dados e é adequado para trabalhar com streaming de dados.
  4. Compatibilidade e portabilidade: o HDFS foi projetado para migrar para uma variedade de hardware e é compatível com vários sistemas operacionais, permitindo que os usuários utilizem o HDFS em qualquer configuração. A compatibilidade e a portabilidade são essenciais ao trabalhar com big data e são possíveis graças aos métodos especializados de processamento de dados do HDFS.

    Este gráfico mostra a diferença entre sistemas de arquivos locais e HDFS.

    hadoop hdfs

  5. Escalabilidade: os recursos podem ser dimensionados de acordo com o tamanho do sistema de arquivos. O HDFS fornece mecanismos para expansão vertical e horizontal de dados.
  6. Localidade dos dados: quando se trata do sistema de arquivos do Hadoop, os dados residem em nós de dados, em vez de serem movidos para o local de uma unidade de computação. Ao encurtar a distância entre os dados e o processamento, o congestionamento da rede pode ser reduzido e os sistemas podem se tornar mais eficazes e eficientes.
  7. Custo-benefício: a princípio, quando você pensa em dados, pode imaginar que eles exigem hardware e largura de banda caros. E reparar falhas de hardware é custoso. Com o HDFS, os dados permanecem virtuais e armazenados de forma barata, reduzindo significativamente os custos de armazenamento de dados para metadados e namespaces do sistema de arquivos. Além disso, o HDFS é de código aberto, então você não precisa se preocupar em pagar taxas de licenciamento.
  8. Armazenamento de grandes quantidades de dados: o armazenamento de dados é a essência do HDFS, e isso significa dados de todos os tipos e tamanhos, mas especialmente grandes quantidades de dados mantidos por empresas que lutam para armazenar dados. Isso inclui dados estruturados e não estruturados.
  9. Flexibilidade: ao contrário dos bancos de dados de armazenamento tradicionais, os dados coletados não precisam ser processados antes de serem armazenados. Você pode armazenar quantos dados quiser e decidir o que fazer com eles mais tarde. Isso também inclui dados não estruturados, como texto, vídeos e imagens.

Como usar o HDFS

Então, como você usa o HDFS? O HDFS executa um NameNode principal e vários datanodes em um cluster de hardware comum. Esses nós são organizados no mesmo local dentro do data center. Em seguida, ele é dividido em blocos e distribuído e armazenado em vários DataNodes. Os blocos são frequentemente replicados entre nós para reduzir a possibilidade de perda de dados. Este é um sistema de backup caso seus dados sejam perdidos.

Vamos dar uma olhada em NameNodes. Um NameNode é um nó no cluster que sabe quais são os dados, onde os blocos pertencem, qual é o tamanho dos blocos e para onde devem ir. NameNodes também são usados para controlar o acesso a arquivos, como quando alguém pode gravar, ler, criar, remover e replicar dados entre várias notas de dados.

Além disso, os clusters podem ser alterados em tempo real de acordo com a capacidade do servidor, o que é útil quando os dados aumentam rapidamente. Você pode adicionar ou remover nós conforme necessário.

Agora, vamos falar sobre DataNodes. Os DataNodes se comunicam constantemente com NameNode para verificar se uma tarefa precisa ser iniciada e concluída. Esse fluxo consistente de colaboração significa que o NameNode tem um conhecimento profundo do status de cada DataNode.

Se descobrir que um nó de dados não está se comportando como deveria, o NameNode pode reatribuir automaticamente suas tarefas a outros nós de trabalho dentro do mesmo bloco de dados. Da mesma forma, os DataNodes também podem se comunicar entre si. Isso significa que podem colaborar durante operações de arquivo padrão. O NameNode é muito importante na manutenção do sistema, pois conhece o DataNode e seu desempenho.

Os blocos de dados são replicados em várias notas de dados e podem ser acessados a partir do NameNode.

Para usar o HDFS, você deve instalar e configurar um cluster Hadoop. Ele pode ser configurado como um nó único, adequado para usuários iniciantes, ou como um cluster para grandes clusters distribuídos. Depois disso, você precisará dominar os seguintes comandos do HDFS para operar e gerenciar o sistema.

Comando

Descrição

-rm

Remove arquivos e diretórios.

-ls

Lista arquivos com permissões e outros detalhes.

-mkdir

Crie um diretório chamado path no HDFS.

-cat

Mostra o conteúdo do arquivo.

-rmdir

Exclui um diretório.

-put

Faz upload de arquivos e pastas do seu disco local para o HDFS.

-rmr

Exclui o arquivo identificado pelo caminho ou pasta e subpastas.

-get

Move arquivos ou pastas do HDFS para arquivos locais.

-count

Conta o número de arquivos, o número de diretórios e o tamanho do arquivo.

-df

Mostra o espaço livre.

-getmerge

Mescla vários arquivos no HDFS.

-chmod

Altera as permissões do arquivo.

-copyToLocal

Copia o arquivo para o sistema local.

-Stat

Exibe estatísticas sobre arquivos e diretórios.

-head

Mostra o primeiro kilobyte de um arquivo.

-usage

Retorna ajuda para comandos individuais.

-chown

Atribui um novo proprietário e grupo para o arquivo.

Como funciona o HDFS?

Conforme mencionado anteriormente, o HDFS usa NameNodes e DataNodes. O HDFS permite a rápida transferência de dados entre nós de compute. Quando o HDFS ingere dados, ele pode dividir as informações em blocos e distribuí-los para diferentes nós do cluster.

Os dados são divididos em blocos e distribuídos e armazenados em DataNodes. Esses blocos podem ser replicados entre nós, permitindo um paralelismo eficiente. Você pode acessar, navegar e visualizar seus dados com vários comandos. Opções do HDFS DFS como “-get” e “-put” permitem recuperar e mover dados conforme necessário.

Além disso, o HDFS foi projetado para alertar e detectar falhas rapidamente. O sistema de arquivos usa replicação de dados para garantir que todos os dados sejam armazenados diversas vezes, alocando-os em nós individuais e garantindo que pelo menos uma cópia esteja em um rack diferente das outras cópias.

Ou seja, quando um DataNode para de enviar sinais para um NameNode, ele é removido do cluster e passa a operar sem ele. Se esse DataNode retornar, ele poderá ser atribuído a um novo cluster. Além disso, os blocos de dados são replicados em vários DataNodes, portanto, a exclusão de um não causará nenhum tipo de corrupção de arquivo.

Componentes HDFS

É importante saber que o Hadoop conta com três componentes principais: Hadoop HDFS, Hadoop MapReduce e Hadoop YARN. Vamos dar uma olhada no que esses componentes trazem para o Hadoop:

  • Hadoop HDFS (Distributed File System) é uma unidade de armazenamento no Hadoop.
  • Hadoop MapReduce é uma unidade de processamento no Hadoop. É um framework de software usado para escrever aplicativos para processar grandes quantidades de dados.
  • Hadoop YARN é o componente de gerenciamento de recursos do Hadoop. Ele pode processar e executar processamento em batch, processamento em stream, processamento interativo, processamento gráfico etc. em dados armazenados em HDFS.

Como criar um sistema de arquivos HDFS

Quer saber como criar um sistema de arquivos HDFS? Você pode criar, editar e, se necessário, excluir sistemas seguindo as etapas abaixo.

Listar o HDFS

A lista HDFS deve ser /user/yourUserName. Para exibir o conteúdo do diretório inicial do HDFS, digite:


hdfs dfs -ls

Você não consegue ver nada neste estágio porque está apenas começando. Se você deseja exibir o conteúdo de um diretório não vazio, digite o seguinte comando:


hdfs dfs -ls /user

Agora você pode ver os nomes dos diretórios iniciais de todos os outros usuários do Hadoop.

Criar um diretório no HDFS

Agora, vamos criar um diretório de teste e chamá-lo de testHDFS. Ele aparecerá no HDFS. Insira o seguinte:


hdfs dfs -mkdir testHDFS

Agora, você precisa verificar se o diretório existe usando o comando inserido ao listar o HDFS. Você deve ver o diretório testHDFS.

Verifique novamente com o nome completo do caminho do HDFS. Digite o seguinte comando:


hdfs dfs -ls /user/yourUserName

Verifique novamente se ele está funcionando antes de prosseguir para a próxima etapa.

Copiar um arquivo

Para copiar arquivos do seu sistema de arquivos local para o HDFS, comece criando os arquivos que deseja copiar. Para fazer isso, digite o seguinte comando:


echo "HDFS test file" >> testFile

Isso cria um novo arquivo chamado testFile contendo o arquivo de teste HDFS de caracteres. Para verificar, digite o seguinte comando:

ls

Em seguida, digite o seguinte comando para confirmar que o arquivo foi criado:


cat testFile

Então, você precisa copiar os arquivos para o HDFS. Os comandos a seguir são necessários para copiar arquivos do Linux para o HDFS:


hdfs dfs -copyFromLocal testFile

Observe que você deve usar o comando “-copyFromLocal” porque o comando “-cp” é usado para copiar arquivos no HDFS.

Agora, verifique se os arquivos foram copiados corretamente. Para isso, digite o seguinte comando:

 


code>hdfs dfs -ls
hdfs dfs -cat testFile

 

Mover e copiar arquivos

Ao copiar o testfile, ele foi colocado no diretório inicial base. Agora, você pode movê-lo para o diretório testHDFS que já criou. Para fazer isso, use o seguinte comando:


hdfs dfs -mv testFile testHDFS
hdfs dfs -ls
hdfs dfs -ls testHDFS/

A primeira parte foi mover testFile do diretório inicial do HDFS para o diretório de teste que criamos. A segunda parte deste comando mostra que ele não está mais no diretório inicial do HDFS, e a terceira parte confirma que ele foi movido para o diretório de teste do HDFS.

Para copiar os arquivos, digite o seguinte comando:


hdfs dfs -cp testHDFS/testFile testHDFS/testFile2
hdfs dfs -ls testHDFS/

Verificar o uso do disco

A verificação do espaço em disco é útil ao usar o HDFS. Para fazer isso, digite o seguinte comando:


hdfs dfs -du

Então, você pode ver quanto espaço está sendo usado no HDFS. Você também pode verificar o espaço livre do HDFS no cluster digitando:


hdfs dfs -df

Remover um arquivo/diretório

Pode chegar um momento em que você precisará excluir arquivos ou diretórios no HDFS. Isso pode ser feito com o comando:


hdfs dfs -rm testHDFS/testFile
hdfs dfs -ls testHDFS/

Você pode ver que o diretório testHDFS e testFile2 que você criou permanecem. Portanto, digite o seguinte comando para excluir o diretório:


hdfs dfs -rmdir testhdfs

Uma mensagem de erro aparecerá, mas não entre em pânico. Especificamente, você verá algo assim: "rmdir: testhdfs: Directory is not empty". O diretório não pode ser excluído a menos que esteja vazio. Você pode contornar isso e excluir um diretório e todos os arquivos que ele contém de uma só vez usando o comando “rm”. Para fazer isso, digite o seguinte comando:


hdfs dfs -rm -r testHDFS
hdfs dfs -ls

Como instalar o HDFS

Para instalar o Hadoop, você precisa lembrar que ele pode ser de nó único ou de nó múltiplo. Dependendo do que precisa, você pode usar um único nó ou um cluster de vários nós.

Um cluster de nó único significa que apenas um DataNode está em execução. Ele incluirá o NameNode, DataNode, gerenciador de recursos e gerenciador de nós em uma máquina.

Dependendo do seu setor, isso pode ser tudo que você precisa. Por exemplo, na área médica, clusters de nó único podem ser usados ao conduzir pesquisas que exigem que os dados sejam coletados, classificados e processados em sequência. Pode ser facilmente processado em pequena escala em comparação com dados espalhados por centenas de máquinas. Para instalar um cluster de nó único, use as etapas a seguir como guia:

  1. Baixe o pacote Java 8 e salve-o no seu diretório inicial.
  2. Descompacte o arquivo Java Tar.
  3. Baixe o pacote Hadoop 2.7.3.
  4. Descompacte o arquivo Hadoop Tar.
  5. Adicione caminhos Hadoop e Java ao arquivo bash (.bashrc).
  6. Edite os arquivos de configuração do Hadoop.
  7. Abra core-site.xml e edite a propriedade.
  8. Edite hdfs-site.xml e edite a propriedade.
  9. Edite o arquivo mapred-site.xml e edite a propriedade.
  10. Edite yarn-site.xml e edite a propriedade.
  11. Edite hadoop-env.sh e adicione o caminho Java.
  12. Acesse o diretório inicial do Hadoop e formate o NameNode.
  13. Acesse o diretório hadoop-2.7.3/sbin e inicie todos os daemons.
  14. Verifique se todos os serviços Hadoop estão em execução.

O HDFS agora está instalado com sucesso.

Como acessar arquivos HDFS

O HDFS naturalmente possui segurança rigorosa, pois lida com dados. O HDFS é tecnicamente um armazenamento virtual, portanto, como abrange um cluster, você só pode ver os metadados do sistema de arquivos, e não os dados reais e tangíveis.

Para acessar arquivos no HDFS, baixe o arquivo “jar” do HDFS para seu sistema de arquivos local. Você também pode acessar o HDFS usando a interface do usuário da web. Para fazer isso, abra seu navegador e digite “localhost:50070” na barra de busca. A partir daí, você pode visualizar a interface de usuário da web do HDFS e navegar até a tab Utilitários à direita. Em seguida, clique em “navegar no sistema de arquivos” para ver uma lista de arquivos no HDFS.

Exemplos de HDFS DFS

Aqui estão alguns exemplos dos comandos mais comuns do Hadoop.

Exemplo A

Para excluir um diretório, você precisa aplicar o seguinte conteúdo (observação: isso só é possível se o arquivo estiver vazio):


$Hadoop fs -rmdir /directory-name

Ou


$hdfs dfs -rmdir /directory-name

Exemplo B

Se você tiver vários arquivos no HDFS, poderá usar o comando “-getmerge”. Isso consolida vários arquivos em um único arquivo que pode ser baixado em seu sistema de arquivos local. Para fazer isso, digite o seguinte comando:


$ Hadoop fs -getmerge [-nl] /source /local-destination

Ou


$ hdfs dfs -getmerge [-nl] /source /local-destination

Exemplo C

Se quiser fazer upload de arquivos localmente do HDFS, você pode usar o comando “-put”. Nesse momento, especifique de onde copiar e quais arquivos copiar no HDFS. Para fazer isso, use o seguinte:


$ Hadoop fs -put /local-file-path /hdfs-file-path

Ou


$ hdfs dfs -put /local-file-path /hdfs-file-path

Exemplo D

O comando count é usado para saber o número de diretórios, número de arquivos e tamanhos de arquivos no HDFS. Para fazer isso, digite o seguinte comando:


$ Hadoop fs -count /hdfs-file-path

Ou


$ hdfs dfs -count /hdfs-file-path

Exemplo E

O comando “chown” é usado para alterar o proprietário e o grupo de um arquivo. Para ativar esse comando, use o seguinte:


$ Hadoop fs -chown [-R] [owner][:[group]] hdfs-file-path

Ou


$ hdfs dfs -chown [-R] [owner][:[group]] hdfs-file-path

O que é o armazenamento HDFS?

Como você sabe, os dados no HDFS são armazenados nos chamados blocos. Esse bloco é a menor unidade de dados que um sistema de arquivos pode armazenar. Os arquivos são processados e divididos em blocos, que são então distribuídos em clusters e replicados para sua segurança. Normalmente, cada bloco pode ser replicado três vezes. O diagrama abaixo mostra big data e como eles são armazenados no HDFS.

main qimg

O primeiro é armazenado em um DataNode, o segundo é armazenado em outro DataNode no cluster e o terceiro é armazenado em um DataNode em outro cluster. Isto é como uma etapa de segurança de proteção tripla. Portanto, mesmo que uma réplica falhe, seus dados não serão perdidos permanentemente.

O NameNode contém informações importantes como número de blocos e onde as réplicas são armazenadas. DataNodes, por outro lado, armazenam os dados reais e permitem comandos para criar blocos, excluir blocos e duplicar blocos. Isso pode ser feito com o seguinte comando:


In hdfs-site.xml
dfs.NameNode.name.dirfile:/Hadoop/hdfs/NameNode

dfs.DataNode.data.dir
file:/Hadoop/hdfs/DataNode
Dfs.DataNode.data.dir

É isso que determina onde os DataNodes devem armazenar seus blocos.

Como o HDFS armazena dados?

O HDFS consiste nos seguintes serviços mestres: NameNode, NameNode secundário e DataNodes. NameNode e NameNode secundário gerenciam metadados para HDFS. Os DataNodes armazenam dados subjacentes do HDFS.

O NameNode rastreia qual DataNode no HDFS contém o conteúdo de um determinado arquivo. O HDFS divide os arquivos em blocos e armazena cada bloco em um DataNode. Vários DataNodes estão vinculados a um cluster. NameNode distribui réplicas desses blocos pelo cluster. Ele também informa aos usuários e aplicativos onde encontrar as informações de que precisam.

Para que o Hadoop Distributed File System (HDFS) foi projetado?

Simplificando, ao perguntar “O que o Hadoop Distributed File System foi projetado para suportar?” a resposta, em primeiro lugar, é “big data”. Isso é de grande importância para grandes empresas que lutam para gerenciar e armazenar dados de seus negócios e clientes.

O Hadoop permite armazenar e integrar todos os seus dados, incluindo dados transacionais, científicos, de mídia social, publicidade e dados de máquina. Você também pode revisitar esses dados para obter insights valiosos sobre o desempenho e a análise dos negócios.

Como o HDFS foi projetado para armazenar dados, ele também pode trabalhar com dados brutos, que são frequentemente usados por cientistas e profissionais médicos para realizar análises de dados. São chamados de data lakes. Portanto, você pode resolver problemas mais difíceis sem restrições.

Além disso, como o Hadoop foi projetado principalmente para processar grandes quantidades de dados de diversas maneiras, ele também pode ser usado para executar algoritmos para fins analíticos. Resumindo, ajuda as empresas a processar e analisar dados com mais eficiência e a descobrir tendências e anomalias emergentes. Certos conjuntos de dados também podem ser movidos de um data warehouse para o Hadoop. O Hadoop coloca tudo em um local de fácil acesso.

Quando se trata de dados transacionais, o Hadoop também pode processar milhões de transações. Devido ao seu poder de armazenamento e processamento, o Hadoop pode ser usado para armazenar e analisar dados de clientes. E, ao se aprofundar em seus dados, você poderá descobrir novas tendências e padrões que podem ajudar a atingir suas metas de negócios. Além disso, o Hadoop é constantemente atualizado com novos dados, e você também pode comparar dados novos e antigos para ver o que mudou e por quê.

Considerações com o HDFS

O HDFS está configurado para armazenar três réplicas por padrão e seu conjunto de dados terá duas cópias adicionais. Embora isso aumente a probabilidade de os dados serem localizados durante o processamento, isso acarreta custos indiretos de armazenamento.

  • O HDFS funciona melhor quando configurado com armazenamento local, garantindo o mais alto desempenho do sistema de arquivos.
  • Aumentar a capacidade do HDFS requer a adição de novos servidores (compute, memória, disco), bem como mídias de armazenamento.

Comparação do HDFS com o armazenamento de objetos em nuvem

Conforme mencionado anteriormente, a capacidade do HDFS está intimamente relacionada aos recursos computacionais. Aumentar a capacidade de armazenamento também aumenta desnecessariamente os recursos da CPU. Adicionar mais nós de dados ao HDFS requer uma operação de rebalanceamento para distribuir os dados existentes aos servidores recém-adicionados.

Esta operação pode demorar algum tempo. Dimensionar um cluster Hadoop em um ambiente on-premises também pode ser difícil devido a considerações de custo e espaço. Supondo que o YARN possa ser provisionado no servidor que armazena os dados que estão sendo processados, o HDFS pode fornecer benefícios de desempenho de E/S porque usa armazenamento local.

Entretanto, em ambientes de alto uso, grande parte da leitura e gravação de dados ocorre pela rede, e não localmente. O armazenamento de objetos em nuvem, como Azure Data Lake Storage (ADLS), AWS S3 e Google Cloud Storage (GCS), permite que os usuários armazenem grandes quantidades de dados na nuvem porque são independentes dos recursos de computação que acessam a nuvem.

Mesmo dados que excedem Petabytes podem ser facilmente armazenados usando armazenamento de objetos em nuvem. No entanto, todas as operações de leitura e gravação no armazenamento em nuvem são realizadas através da rede. É importante que as aplicações que acessam dados aproveitem o cache sempre que possível ou incluam lógica que minimize as operações de entrada/saída.

Recursos adicionais

Voltar ao glossário