Archive for the ‘Computação em Nuvem’ Category

Hadoop – Introdução

junho 16, 2009

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.

Computação em Nuvem

outubro 6, 2008

Atualmente, um dos assuntos mais discutidos no mundo de TI é a Computação em Nuvem, do inglês Cloud Computing. Mas o que realmente seria a Computação em Nuvem e qual será o seu impacto sobre a TI?

Essas serão algumas das perguntas que este artigo irá buscar responder, com o intuito de fornecer uma explicação clara e objetiva sobre esta tecnologia, que poderá ser o futuro da computação.

O que é?

Não há uma definição formal para Computação em Nuvem, porém encontramos algumas “definições” que nos ajudam a compreendê-la:

O cloud é, basicamente, uma combinação de grid computing, que tratava basicamente de potência de processamento bruta, e software como serviço” “Na realidade, cloud é virtualização de rede. (Dennis Byron)

O que realmente significa é que alguém vai assumir a responsabilidade de entregar algumas funções de TI como serviços para alguns clientes e eles não precisam saber como funciona, eles simplesmente usarão. (Daryl C. Plummer, vice-presidente do Gartner)

O que importa mesmo não é o significado de Computação em Nuvem e sim o seu objetivo que é bem simples: colocar tudo na grande nuvem, vulgo Internet.

Para exemplificar esse objetivo, podemos pensar no serviço de e-mail do G-Mail, que utiliza esse conceito: a sua caixa postal fica totalmente na Internet, logo você pode ter acesso em qualquer lugar que tenha conexão com a Internet.

Ela é o futuro?

Por trás da Computação em Nuvem há grandes empresas (Google, Amazon, AT&T, Dell, HP, IBM, Intel, Microsoft e Yahoo), apoiando essa idéia e acreditando que o futuro será centralizar tudo na Internet.

Porém, essa tecnologia irá mudar não apenas o acesso a aplicações, como também todo mercado de TI, caso ela realmente seja o futuro, grandes empresas como, por exemplo, a Microsoft poderão ter grandes prejuízos, pois não necessitaremos mais de um SO, o cargo chefe da Microsoft, o Windows, irá se tornar dispensável. A idéia é que ao ligar o computador já estaremos na conectados na Internet, bastando realizar o login para termos acesso as nossas aplicações, arquivos, etc.

A Nuvem também causará grande impacto no mercado de hardware, pois os computadores serão muito mais simples e com menos tecnologias e poder de processamento, talvez apenas um monitor com a CPU já integrada nele, parecido com o IMac. E com isso eles serão mais baratos, fato que poderá contribuir para a inclusão digital.

Por outro lado, há pessoas como Richard Stallman (guru do Software Livre) e Larry Elisson (dono da Oracle), que acham que Computação em Nuvem é apenas uma chuva de propagandas vindas de uma nuvem passageira:

É uma estupidez! Pior que estupidez: é uma campanha de marketing “hype”!
Alguns dizem que é inevitável – toda vez que você ouvir isso é porque existe por trás uma série de empresas “forçando” para isso se tornar realidade. (Richard Stallman)

Uma coisa interessante sobre Computação em Nuvem é que nós teremos que redefini-la para incluir tudo o que já temos. Não consigo pensar em algo que não é Computação em Nuvem, com todos esse anúncios. A indústria da computação é a única indústria que é mais guiada por moda que a própria indústria de moda feminina. Talvez eu seja um idiota, mas não tenho a menor idéia do que estão falando. O que é isso? São só rabiscos. Isso é uma insanidade. Quando essa idiotice vai parar? (Larry Elisson)

Conclusão

A Computação em Nuvem irá representar uma revolução na computação. Tanto na maneira de fazer negócios quanto na forma que as pessoas usarão os computadores. Se ela realmente será o futuro, só o tempo poderá dizer.

Mas uma coisa é certa, o futuro da computação está na Internet, talvez não do jeito proposto pela Computação em Nuvem. E teremos que está preparados para não sermos engolidos por essa nova onda.

Abaixo, uma reportagem do Jornal da Globo sobre Computação em Nuvem com uma entrevista com Eric Schmidt – CEO do Google:

Novos artigos serão necessários para explicar melhor Computação em Nuvem, pois ela está relaciona com vários “conceitos”, como: SaaS, Grid Computing, Utility Computing, Web services in the cloud, Plataform as a service, Autonomic computing e Virtualização.

E vocês o que acham? A Computação em Nuvem será o futuro da computação ou é apenas um jogo de marketing?

Agradecimento:

Ao Adelson Junior pela idéia e incentivo da criação do artigo sobre Computação em Nuvem.

Fonte:

IDG Now!

CIO

Wikipedia