Hadoop – Introdução

by

Pessoal,
Começa aqui uma série de posts sobre o Hadoop.

logo_hadoop

Farei este primeiro post no formato de perguntas e respostas, para tentar deixar mais dinâmico e facilitar o entendimento sobre o assunto, espero que gostem.🙂

O que é esse tal de Hadoop?

O Hadoop é um framework open source desenvolvido em Java, para rodar aplicações, que manipulem uma grande quantidade de dados, em ambientes “clusterizados”.

Nossa! Não entendi nada, você poderia explicar de novo?

Normal, eu também demorei um tempo para entender o que realmente é o Hadoop (já que entrei de gaiato e curioso nesse novo mundo).

Bem, então para explicar melhor, vou te apresentar o problema que motivou o desenvolvimento do Hadoop:

Você está desenvolvendo um site de busca (alá Google) e as informações que você irá buscar estão dispersas em várias máquinas diferentes, como você irá realizar esse processamento?

  1. Vou comprar um supercomputador e processar localmente;
  2. Vou consultar o Larry Page e o Sergey Brin;
  3. Vou distribuir o processamento entre várias máquinas, utilizando o Hadoop.

Essa foi fácil hein!

Lógico que você irá utilizar o Hadoop (alternativa 3), afinal das contas, ele foi criado justamente visando suprir essas necessidades:

  • Oferecer um framework que possa auxiliar o desenvolvedor no desenvolvimento de sua aplicação;
  • Processar uma grande quantidade de dados;
  • Processar de forma distribuída esses dados, utilizando clusters.

Legal! Mas quais são as características do Hadoop?

Segue abaixo as principais características do Hadoop.

  • Escalável: ele pode armazenar e processar petabytes sem problemas;
  • Econômico: o Hadoop distribui os dados e o processamento através dos clusters. Estes clusters podem ter milhares de nós (máquinas);
  • Eficiente: Por distribuir os dados, o Hadoop pode processar eles em paralelo por meio dos nós, onde os dados estão alocados. Isto é feito de forma extremamente rápida;
  • Confiável: ele automaticamente mantém múltiplas copias dos dados e automaticamente  remaneja as tarefas em caso de falhas.

O Hadoop tem alguma coisa haver com o MapReduce?

Sim, aliás, ele é baseado no modelo de programação MapReduce, que foi desenvolvido pelo Google.

Fluxo conceitual do processo MapReduce (fonte)

Fluxo conceitual do processo MapReduce

Ele o responsável por dividir os dados de entrada em blocos independentes, que são processados de forma completamente paralela, pelas chamadas map tasks (traduzindo ao pé da letra, tarefas de mapeamento). Ele ordena as saídas das map tasks, que são os dados de entrada das reduce tasks (traduzindo ao pé da letra, tarefas de redução). Normalmente tanto a entrada quanto a saída da tarefa são armazenadas no sistema de arquivo. O MadReduce se encarrega de agendar as tarefas, monitorar e “reexecutar” em caso de falha.

Você falou sobre o sistema de arquivo, como ele funciona, já que os dados são processados e estão distribuídos?

Quem cuida dessa parte é o HDFS (Hadoop Distributed File System), que foi baseado no GFS (Google File System).

Como o próprio nome já sugere, ele é um sistema de arquivo distribuído. O interessante é que quando fosse for desenvolver a sua aplicação você não precisa se preocupa com isso, o próprio Hadoop se encarrega dessa tarefa, ou seja, para a sua aplicação, isso é transparente, seria como se os dados estivessem armazenados localmente.

O HDFS é focado em garantir alto gerenciamento, confiabilidade, usabilidade e desempenho. Para se ter idéia, por default a replicação dos dados ocorre em dois nós: uma no próprio nó (ou seja, são duas: dado original + o replicado) e outra em um diferente.

Show de bola! Como posso aprender mais sobre ele?

Pretendo escrever mais sobre o Hadoop, em um futuro breve. Mas enquanto isso você pode se aventurar por esses sites (todos em inglês) abaixo:

http://hadoop.apache.org/

Site oficial do Hadoop.

http://www.cloudera.com/

Tem muita informação sobre o Hadoop, destaque para os vídeos explicando sobre ele e a VM (Virtual Machine) que é disponibilizada gratuitamente com o Hadoop já instalado e configurado no Ubuntu.

http://wiki.apache.org/hadoop/

Wiki do Hadoop.

http://www.ibm.com/developerworks/linux/library/l-hadoop/index.html

Introdução do Hadoop feita pelo Ken Mann e pelo M. Tim Jones.

Fonte:

http://hadoop.apache.org/

www.sprace.org.br/Twiki/pub//Main/SergioLietti/future_hadoop.pdf

http://wiki.apache.org/hadoop/

http://hadoop.apache.org/core/docs/current/hdfs_design.html

http://www.ibm.com/developerworks/linux/library/l-hadoop/index.html

Pessoal,

Começa aqui uma série de posts sobre o Hadoop.

E farei este primeiro post no formato de perguntas e respostas, para tentar deixar mais dinâmico e facilitar o entendimento sobre o assunto, espero que gostem.🙂

O que é esse tal de Hadoop?

O Hadoop é um framework open source desenvolvido em Java, para rodar aplicações, que manipulem uma grande quantidade de dados, em ambientes clusterizados.

Nossa! Não entendi nada, você poderia explicar de novo?

Normal, eu também demorei um tempo para entender o que realmente é o Hadoop (já que entrei de gaiato e curioso nesse novo mundo).

Bem, então para explicar melhor, vou te apresentar o problema, que acredito que seja o que motivou o desenvolvimento do Hadoop:

Você está desenvolvendo um site de busca (alá Google) e as informações que você irá buscar estão dispersas em várias máquinas diferentes, como você irá realizar esse processamento?

1. Vou comprar um supercomputador e processar localmente;

2. Vou consultar o Larry Page;

3. Vou distribuir o processamento entre várias máquinas, utilizando o Hadoop.

Esse foi fácil hein!

Lógico que você irá utilizar o Hadoop (alternativa 3), afinal das contas, ele foi criado justamente visando suprir essa necessidade:

· Oferecer um framework que possa auxiliar o desenvolvedor no desenvolvimento de sua aplicação;

· Processar uma grande quantidade de dados;

· Processar de forma distribuída esses dados, utilizando clusters.

Legal! Mas quais são as características do Hadoop?

Segue abaixo as principais características do Hadoop.

· Escalável: ele pode armazenar e processar petabytes sem problemas;

· Econômico: o Hadoop distribui os dados e o processamento através dos clusters. Este clusters podem ter milhares de nós (máquinas).

· Eficiente: Por distribuir os dados, o Hadoop pode processar eles em paralelo por meio dos nós, onde os dados estão alocados. Isto é feito de forma extremamente rápida.

· Confiável: ele automaticamente mantém múltiplas copias dos dados e automaticamente remaneja as tarefas em caso de falhas.

O Hadoop tem alguma coisa haver com o MapReduce?

Sim, aliás ele é baseado no modelo de programação MapReduce, que foi desenvolvido pelo Google.

É ele o responsável por dividir os dados de entrada em blocos independentes, que são processados de forma completamente paralela, pelas chamadas map tasks (traduzindo ao pé da letra, tarefas de mapeamento). Ele ordena as saídas das map tasks, que são os dados de entrada das reduce tasks (traduzindo ao pé da letra, tarefas de redução). Normalmente tanto a entrada quanto a saída da tarefa são armazenadas no sistema de arquivo. O MadReduce se encarrega de agendar as tarefas, monitorar e re-executar em caso de falha.

Você falou sobre o sistema de arquivo, como ele funciona, já que os dados são processados e estão distribuídos?

Quem cuida dessa parte é o HDFS (Hadoop Distributed File System), que foi baseado no GFS (Google File System).

Como o próprio nome já sugeri ele é um sistema de arquivo distribuído. O interessante é que quando fosse for desenvolver a sua aplicação você não precisa se preocupa com isso, o próprio Hadoop se encarrega dessa tarefa, ou seja, para a sua aplicação, isso é transparente, seria como se os dados estivessem armazenados localmente.

E o HDFS é focado em garantir alto gerenciamento, confiabilidade, usabilidade e desempenho. Para se ter idéia, por default a replicação dos dados ocorre em dois nós: uma no próprio nó (ou seja são duas, dado original + o replicado) e outra em um diferente.

Nossa show de bola! Como posso aprender mais sobre ele?

Pretendo escrever mais sobre o Hadoop, em um futuro breve. Mas enquanto isso você pode se aventurar por esses sites (todos em inglês) abaixo:

http://hadoop.apache.org/

Site oficial do Hadoop.

http://www.cloudera.com/

Tem muita informação sobre o Hadoop, destaque para os vídeos explicando sobre ele e a VM (Virtual Machine) que é disponibilizada gratuitamente com o Hadoop já instalado e configurado no Ubuntu.

http://wiki.apache.org/hadoop/

Wiki do Hadoop.

http://www.ibm.com/developerworks/linux/library/l-hadoop/index.html

Introdução do Hadoop feita pelo Ken Mann e pelo Author photo - Ken MannKen Mann is an embedded software developer in the Denver metro area. He has over 20 years experience in software development ranging from simulation and numerical analysis in Fortran 77 to embedded software for wired and wireless telecommunication applications.M. Tim Jones.

Tags: , , , ,

11 Respostas to “Hadoop – Introdução”

  1. Roberto Capelo Says:

    Parabéns, muito bom o post!!
    Não conhecia o Hadoop já tinha estudado a muito tempo o GFS…muito bom…muito bom mesmo e muito bem escrito o post !

  2. Rodrigo Ribeiro Says:

    Post de excelência!

    Já tinha ouvido falar do Hadoop, mas não sabia dessas informações mais técnicas.

    Valeu pelo conteúdo!

  3. Fabrício Ferrari de Campos Says:

    Obrigado pelos comentários Capelo e Rodrigo!🙂

  4. Angela Kodaira Says:

    Parabéns pelo post Fabricio!

    Ficou muito bem explicado a introdução sobre o Hadoop!
    O post vai nos ajudar muito nas nossas reuniões sobre o grid!

    Bem legal mesmo!!

  5. Adelson Junior Says:

    Show de bola Fabrício.
    Muito bom mesmo o post, o conteúdo e a maneira que você escreve, fazendo com que a gente goste da leitura.
    Continue assim.
    Abraço!

  6. Lucas Renan Says:

    muito bommm, parabéns…

    é essencial termos material sobre o HADOOP em português =]

  7. Encontro no:sql(br). – Eu fui! « Blog do Ensinar Says:

    […] essa palestra estava alta, pois eu já tinha brincado/apanhado um pouco com o Hadoop (até fiz um post aqui no Ensinar), e queria saber como o pessoal da SambaTech está usando o […]

  8. Melissa Ferrer Says:

    Parabéééns pelo post! Simples e objetivo! Tecnologia de ponta!

  9. Windows Azure « Our Windows Says:

    […] Ensinar […]

  10. Thiago Says:

    Muito interessante o seu post, já tinha lido muito à respeito do Hadoop, mas não tinha conseguido entender direito. Dessa maneira que você explicou consegui entender melhor. Parabéns pelo post.

  11. Fonseca Says:

    Amigo valeu pelo post. Muita qualidade.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: