Formato e Conceitos do HDFS
Autor: Lucas Rehem de Azevedo | Publicado: 2016-06-21T22:23:00-03:00


Olá pessoal,



Hoje irei entrar um pouco mais fundo no HDFS. Comentando sobre o sistema distribuído, formato do cluster, tamanho dos arquivos, acesso aos dados e sobre o Hardware.







Sistema distribuído de Arquivos do Hadoop


&nbsp;&nbsp;&nbsp; - Otimizado para utilizar grande massa de dados
&nbsp;&nbsp;&nbsp; - Quebra arquivos em partes de maneira que seja possível distribuir os dados entre as máquinas em cluster
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - Essa necessidade vem de que uma máquina só não consegue realizar tal processamento devido que esse arquivo(vamos chama-lo de dataset) extrapola o armazenamento de uma máquina
&nbsp;&nbsp;&nbsp; - Dessa forma é feito o particionamento desse dataset entre outras máquinas que estão interligadas no cluster
&nbsp;&nbsp;&nbsp; - Responsável por gerenciar e armazenar os dados através de uma rede
&nbsp;&nbsp;&nbsp; - o mesmo dado que está sendo processado por um nó é replicado para outros nós. Pois no caso de um nó falhar o dado não processado não é perdido, um outro nó tem a responsabilidade de realizar a tarefa
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - O qual é o maior desafio. Gerenciar e tolerar falhas com o objetivo de evitar a perda de informação
&nbsp;&nbsp;&nbsp; - O HDFS é o sistema distribuído do hadoop que garante a tolerância a falha através da replicação de blocos de dados através dos nós do cluster.

Formato do Cluster

&nbsp;&nbsp;&nbsp; - Máquina Master, que é o Mestre do cluster. É quem distribui trabalho para os Slaves e é quem controla o HDFS
&nbsp;&nbsp;&nbsp; - Máquinas Slaves, que são controladas pelo Master.
&nbsp;&nbsp;&nbsp; - O ideal é ter um backup do master, que é o que garante a tolerância a falhas do master. não é comum ter uma máquina ociosa para garantir o master, deve ser pensado conforme a necessidade de negócio
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - Caso o sistema não seja critico, não existe a necessidade de ter um master redundante
&nbsp;&nbsp;&nbsp; - É bom lembrar que o hadoop é escalável, de maneira que é possível adicionar mais nós slaves para melhorar e diminuir o tempo de processamento
&nbsp;&nbsp;&nbsp; 
Grandes Arquivos


&nbsp;&nbsp;&nbsp; - Megabytes, Gigabytes, Terabytes ou Petabytes de dados
&nbsp;&nbsp;&nbsp; - O Hadoop está preparado tanto para arquivos grandes quanto para grandes quantidades de arquivos pequenos

Acesso aos Dados


&nbsp;&nbsp;&nbsp; - A apache criou um sistema de arquivos para grande processamento de arquivos. O que possibilita trabalhar com grande massa de dados.
&nbsp;&nbsp;&nbsp; - De modo que o dado é escrito uma vez e lido muitas vezes! O Hadoop trabalha melhor escrevendo uma vez e analisando o mesmo dado por diversas perspectivas/códigos.
&nbsp;&nbsp;&nbsp; - A análise pode ser feita sob uma parte dos dados ou todo o conjunto(dataset) de dados.
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - Primeiro fazer uma classificação e ver o resultado, depois fazer algum outro tratamento e ter outro resultado.
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - É possível colocar um filtro antes de rodar algum tipo de tratamento.


Hardware


&nbsp;&nbsp;&nbsp; - HDFS não requer um cluster com "Super Máquinas".
&nbsp;&nbsp;&nbsp; - Podem ser utilizadas máquinas 
&nbsp;&nbsp;&nbsp; - Clusters:
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - Homogêneos: Máquinas que compõem o cluster com a mesma configuração
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - Heterogêneo: Máquinas completamente diferentes. Com processadores e núcleos diferentes, memória ram e etc...
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - O Hadoop é o responsável por lidar com a homogeneidade e com a heterogeneidade
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - A máquina com melhor configuração irá receber mais pacotes do que a com menor configuração









Imagem retirada do site https://datafireball.com/2014/07/page/2/



Obrigado pela atenção. Toda e qualquer sugestão/dúvida será bem vinda