Perguntas e Respostas sobre Processamento Distribuído com Hadoop – Parte 1

Perguntas e Respostas sobre Processamento Distribuído com Hadoop – Parte 1

Artigo escrito por: Ademir Aparecido Monteiro – Cientista e Engenheiro de Dados

Você já ouviu falar em Hadoop mas não sabe o que é?

Você tem dúvidas do que o Hadoop é capaz de fazer?

 

Se você respondeu “sim” para as duas perguntas, então esse artigo é para você.

Primeiramente uma definição bem simples de Hadoop: é utilizado para processar grandes volumes de dados. E quando digo “grande” quero dizer bem “GRANDE”. Com letras maiúsculas mesmo.

Provavelmente uma dúvida que vem na sua cabeça é a seguinte: O que significa “grande volume de dados”? Para responder utilizarei de um exemplo.

Provavelmente você tem um HD externo onde armazena suas fotos, músicas, filmes e outros tantos tipos de arquivos. Esse seu HD externo provavelmente tem a capacidade de 1 terabyte de dados. Não sabe o que é terabyte, então dá uma olhada neste artigo. Vai até lá, que estarei esperando você por aqui.

https://www.oficinadanet.com.br/hardware/24629-qual-a-diferenca-de-tamanho-entre-um-terabyte-gigabyte-e-petabyte

Então, 1 terabyte de dados é muito informação armazenada, concordam? Então multiplica isso por 1000. Temos então 1 petabyte de dados. Agora sim, estamos falando de “GRANDE” volume de dados. Para processar esse grande volume de dados foi criado o Hadoop.

Armazenar e processar grande volume de dados, ou simplesmente Big Data, é um grande desafio. O Hadoop é a ferramenta ideal para suportar esse desafio.

E por que as empresas precisam processar grande volume de dados? Alguém sabe a resposta? Claro que não é por diversão. É porque precisam extrair valor que ajudem as empresas a aumentar receitas e/ou diminuir custos.

Portanto, atualmente, o Hadoop é a melhor solução para ajudar as empresas nessa tarefa nada fácil. O Hadoop pode até ser utilizado como um data warehouse. O Hadoop é muito popular nas empresas porque consegue aumentar facilmente os recursos de computação (memórias, processadores e storage) quando necessário.

Aqui temos uma definição mais elaborada: é uma estrutura de software open-source para armazenar dados e executar aplicações em clusters de hardwares comuns. Fornece armazenamento massivo para qualquer tipo de dado, grande poder de processamento e a capacidade de lidar quase ilimitadamente com tarefas e trabalhos ocorrendo ao mesmo tempo.

Porém, com o passar dos anos, o foram sendo criadas novas ferramentas que trabalham em conjunto com o Hadoop, turbinando sua capacidade.

Atualmente, o Hadoop e essas ferramentas é chamado de “Ecossistema Hadoop”. Se tornou grande e complexo. E se não for bem entendido pode gerar problemas na utilização. Vamos ajudar você a entender diversas características e componentes do Hadoop.

E se precisar de mais informações segue o link da página oficial do Hadoop: https://hadoop.apache.org/

 

Serão 2 artigos falando sobre o Hadoop.

Me acompanha neste primeiro artigo? Sim? Ok. Então vamos lá.

 

Dúvida 1:

Logo a primeira pergunta: O que é Hadoop?

Apesar de eu já ter falado um pouquinho sobre o Hadoop, vamos expandir o seu conhecimento.

Um pouco de aula de história.

Em 2002, com o aumento da Web, a dupla Doug Cutting e Mike Cafarella tinham necessidades de processar grandes volumes de dados. Neste ano nasceu o Nutch, e que depois em 2008 virou Hadoop.

Em 2006, Doug Cutting foi contrato pelo Yahoo. Cutting levou junto o Nutch. Nesta época, uma parte do Nutch foi separada, nascendo o Hadoop.

O Hadoop foi lançado oficialmente em 2008 pelo Yahoo como um projeto open-source. Atualmente a estrutura e várias ferramentas do ecossistema são mantidos pela Apache Software Foundation (ASF).

E porque o nome Hadoop com esse elefantinho amarelo? Segundo consta em vários sites, é o nome do elefantinho de brinquedo do filho de Doug Cutting.

 

Dúvida 2:

Quais são os principais componentes do Hadoop?

O Hadoop tem uma grande quantidade de componentes. Na imagem abaixo temos alguns componentes:

Com o ecossistema do Hadoop, é possível executar aplicativos, onde alguns computadores (ou milhares) são interligados para realizar o processamento. Também conhecido como “processamento distribuído”. Vale lembrar que o Hadoop pode transferir dados rapidamente.

Três componentes são essenciais para o funcionamento do Hadoop:

HDFS: É a camada utilizada para armazenar os dados (brutos ou tratados; estruturados ou não-estruturados)

YARN: Gerencia os recursos que são utilizados pelo Hadoop (memória, processador e armazenamento)

MapReduce: Tecnologia para realizar processamento de grandes volumes de dados com mais rapidez.

 

Dúvida 3:

O que é HDFS?

Mais uma sopa de letrinhas. O HDFS é o principal componente da estrutura do Hadoop. Sem ele, não existe Hadoop. Consegue gerenciar um cluster de computadores de 2 máquinas. Só isso? Claro que não… Consegue gerenciar 100 máquinas, 200 máquinas, 1000 máquinas e até mais. A tecnologia embarcada no Hadoop consegue lidar facilmente com toda essa quantidade de máquinas. E também tem uma grande tolerância a falhas. Se um computador quebrar, imediatamente outro computador assume o seu lugar.

No HDFS tem dois componentes principais: NameNode e DataNode.

NameNode: Podemos definir com o computador principal, ou nó mestre. Neste computador contém uma espécie de dicionário que indica em qual computador está localizado cada arquivo. Você precisa saber em qual computador está a última versão da planilha de vendas? Pergunte ao NameNode. Ele sabe onde está.

DataNode: É neste computador (ou computadores) onde estão armazenados os arquivos. Lembra que perguntados ao NameNode onde está a planilha de vendas. É no DataNode que está armazenado.

Vejam abaixo uma ilustração do HDFS com o NameNode e DataNode.

 

Dúvida 4:

O que é YARN?

O YARN gerencia os recursos disponíveis (processador, memória e armazenamento) no ambiente do Hadoop HDFS. Neste gerenciamento consegue distribuir quais recursos serão alocados a cada aplicativo que solicitada processamento.

O YARN também tem dois componentes principais: ResourceManager e NodeManager. Vamos ver o que é cada um.

RecourceManager: ou simplesmente Gerente de Recursos: Disponibiliza os recursos solicitados ao aplicativo. Também é responsável por receber as solicitações de processamento e encaminhá-los ao NodeManager.

NodeManager: É responsável pelo processamento em si. Após receber os recursos do ResourceManager, o NodeManager inicia o processamento.

Abaixo uma ilustração do YARN (ResourceManager e NodeManager) junto com o HDFS (NameNode e DataNode).

Dúvida 6:

Qual a diferença entre banco de dados relacional e o HDFS?

A diferença básica entre os dois está no tipo de dados. O Banco de Dados Relacional (RDBMS) armazena somente dados estruturados. O HDFS armazena dados estruturados, semi-estruturados e não-estruturados.

Outras diferenças:

Processamento: O RDBMS tem capacidade limitada de processamento e somente dados estruturados. O HDFS consegue processar grandes conjuntos de dados utilizando o processamento distribuído (cluster)

Esquema: No RDBMS, o esquema é validado antes dos dados serem carregados. No HDFS não é necessário validar o esquema. A validação é realizada na leitura dos dados.

Velocidade de Leitura e Gravação: No RDBMS, consegue ter a leitura dos dados mais rápida, pois já conhece a estrutura dos dados. No caso do HDFS, a gravação é mais rápida devido a não necessidade de validar os dados antes de gravar.

Custo: Pode ser necessário ter que pagar pelas licenças de uso de um RDBMS. No caso do Hadoop não há custo de licença envolvido.

Utilização diária: O RDBMS é mais adequado quando se trata de processamento transacional online. O Hadoop é mais adequado para processamento batch de grandes volumes de dados.

 

Dúvida 7:

Porque o Hadoop (HDFS) é tolerante a falhas?

Primeiramente vou explicar como o HDFS grava os dados. E depois respondo à pergunta.

Coloquemos o seguinte cenário: Um HDFS com 1 NameNode e 10 DataNodes. Traduzindo: 1 computador para o NameNode e 10 computadores para o DataNode.

Por padrão, o HDFS armazena o mesmo arquivo em 3 DataNodes. Ou seja, temos o mesmo arquivo em 3 computadores.

Agora vamos responder à pergunta:

Se 1 DataNode falha (quebra), o NameNode automaticamente tira esse computador da rede (cluster). Desta forma perdemos uma cópia do arquivo. Agora temos somente 2 cópias. O NameNode se encarrega de criar novamente a 3 cópia em outro computador. Por causa deste mecanismo de recuperação de dado, o HDFS é tolerante a falhas.

 

Dúvida 8:

O que são os V’s do Big Data?

Podem ser 3 V’s até 7 V’s. Algumas empresas ou autores adotam “3 V’s”. Outras, “4 V’s”. E assim por diante, até 7 V’s.

Não importa qual é o mais utilizado. Vamos explicar todos os V’s.

Cada V explica uma característica do Big Data, e pode estar relacionado diretamente ao Hadoop.

Volume: É a capacidade de armazenar grandes volumes de dados.

Velocidade: muitos dados sendo gerados em alta velocidade (rede social, sensores, etc.) (Real Time, Near Real Time, Periódico, batch)

Variedade: Áudio, vídeo, banco de dados, textos, mobile, web, mídias sociais, etc.

Veracidade: Dados gerados por qualquer meio eletrônico e que sejam verídicos.

Valor: Onde os dados têm valor comercial e trazem benefícios reais.

Variabilidade: Descreve que o fluxo de dados nem sempre é regular e pode variar de acordo com as condições do momento.

Visualização: É a possibilidade de visualizar os dados gerados pelo big data de alguma forma, seja tabelas, gráficos, dashboards, etc.

 

Dúvida 9:

Quais são os três modos de execução do Hadoop?

Para os leigos, essa é uma pergunta difícil de responder por envolver alguns aspectos técnicos do Hadoop. Mas vou tentar responder. Porém antes de responder volte até a dúvida 3 e relembre os dois principais componentes do Hadoop e na dúvida 4 para relembrar os principais componentes do YARN.

Os três modos de execução do Hadoop são Autônomo, Pseudo Distribuído e Totalmente Distribuído. Vejamos como cada um funciona e seus objetivos.

Modo Autônomo: Por padrão, o Hadoop já vem configurado para executar neste modo. Os serviços NameNode, DataNode, Resource Manager e Node Manager funcionam como único processo. Não há necessidade de configurações após a instalação. Este modo também é chamado de “modo local”. O objetivo principal deste modo é para aprendizado, teste e depuração. E também para pequenos projetos.

Pseudo Distribuído: Também conhecido como cluster de nó único (somente um computador). Neste modo é utilizado somente um computador, semelhante ao “Modo Autônomo”, porém há uma simulação de cluster. Os serviços DataNode e NameNode, Resource Manager e Node Manager são inicializados separadamente. Neste modo o Hadoop é utilizado para fins de desenvolvimento e depuração. E no momento da instalação é necessário configurar realizar algumas configurações para que funcione neste modo.

Totalmente Distribuído: Também conhecido como cluster de vários nós (vários computadores). Este é o mais importante dos modos. Todos os serviços são executados (NameNode, DataNode, Resource Manager e Node Manager) de acordo com a estrutura de um NameNode e vários DataNodes (veja a dúvida 3). Neste modo, os dados são distribuídos pelos computadores que fazem parte do cluster. Este modo também é utilizado para ambiente de produção.

 

Vou parar por aqui. No próximo artigo vou explicar alguns dos componentes do Hadoop, tais como Map Reduce, Spark, Hive, HBse, Pig, Mahout, entre outras.

Aguardo você no próximo artigo.

 

plugins premium WordPress