Your SlideShare is downloading. ×
0
Filesystem Distribuído com
Hadoop!!!
Alessandro Binhara
Começando com Hadoop!!!
•
•
•
•

Grandes volumes de dados (Tera Bytes)
Processamento dos dados
Tolerância a falha
Distribu...
Por que ???
• Requisitos
–
–
–
–

500M+ usuário únicos por mês
Bilhões de eventos interessantes por dia
Necessidade de sca...
Começando com Hadoop!!!
• Histórico
–
–
–
–

Em 2004: Google publica um artigo sobre MapReduce
2005: Doug Cutting integra ...
O que é o Hadoop
• O Apache Hadoop é um projeto desenvolvimento
como open-source software para escalavel ,
confiável e pro...
Características do Hadoop
• Um sistema escalável e confiável para
armazenamento compartilhado e análises.
• Ele automatica...
Ecosistema Hadoop
• Hadoop Core
Hadoop Core

– Distributed File System
Distributed File System
MapReduce Framework
– MapRe...
Quem usa o Hadoop ?
•
•
•
•
•

Buscapé / Ebehavior
Amazon/A9
Facebook
Google
IBM

•
•
•
•
•
•

Joost
Last.fm
New York Time...
M45(open cirrus cluster )
• Colaboração com grandes universidades de
pesquisa(via open cirrus)
–
–
–
–

Carnegie Mellon Un...
Hadoop no Facebook
• Cluster em produção
–
–
–
–
–

4800 cores, 600 máquina, 16GB por máquina – Abril/2009
8000 cores, 100...
Yahoo Hadoop Cluster
Uso de Hardware Comum

Tipicamente em 2 níveis
– Nós são PCs comuns
– 30-40 nodes/rack
– Rack em Uplink de 3-4 gigabit
– R...
HDFS
• Inspirado em GFS
• Projetado para trabalhar com arquivos muito
grandes
• Executado em hardware commodity
• Streamin...
HDFS
• Projetado para escalar a petabytes de armazenamento, e
correr em cima dos sistemas de arquivos do sistema
operacion...
HDFS - Duplicação
• Dados de entrada é
copiado para HDFS é
dividido em blocos
• Cada blocos de dados é
replicado para vári...
HDFS – Hadoop FileSystem
• Sistema de Arquivos Distribuído para grande
Volumes
– 10K nodes, 100 milhões de arquivos, 10 PB...
HDFS - MapReduce Data Flow
Modos de Operação
• Standalone
• Pseudo-distributed
• Fully-distributed
O que é Map Reduce
• MapReduce é um modelo de programação e
implementação associados para o
processamento e geração de gra...
MapReduce x Hadoop
MapReduce

Hadoop

Org

Google

Yahoo/Apache

Impl

C++

Java

Distributed File
Sys

GFS

HDFS

Data Ba...
MapReduce – Função Map
• Input:
– Registros de alguma fonte de dados (por exemplo,
linhas de arquivos, linhas de um banco ...
MapReduce – Função Map
Exemplo – Função Map
map (k, v):
if (isPrime(v)) then emit (k, v)

(“foo”, 7) (“foo”, 7)
(“test, 10) (nothing)
MapReduce – Função Reduce
Depois que a fase de mapeamento terminar, todos
os valores intermediários vão para uma chave de
...
MapReduce – Função Reduce
Exemplo – Função Reduce
reduce (k, vals):
sum = 0
foreach int v in vals:
sum += v
emit (k, sum)
(“A”, [42, 100, 312]) (“A”...
MapReduce - Terminologia
• Job: unidade de trabalho que o cliente quer ser
realizados
– Dados de entrada + programa MapRed...
Fluxo do Trabalho
Exemplo Real
map (String key, String value):
// key: document name
// value: document contents
for each word w in value:
E...
Reduce
reduce(String key, Iterator values):
// key: a palavra
// values: a lista de valores
int result = 0;
for each v in ...
Map/Reduce Cluster
Input
files

M map
tasks

Intermediate
files

R reduce
tasks

split 0
split 1
split 2
split 3
split 4
V...
Execução
Map Reduce
Exemplo Java - Mapper
Exemplo Java – Reduce
JobJava
Passo a Passo
• Os passos básicos para a execução de um
trabalho Hadoop são:
– Compile o seu trabalho em um arquivo JAR
– ...
Exemplo
hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100
hadoop fs -mkdir input
hadoop fs -put /etc/hadoop-0.20/...
Obrigado
•
•
•
•

Alessandro de Oliveira Binhara
binhara@gmail.com
binahra@azuris.com.br
www.facebook.com/azuriscompany
Filesystem distribuído com hadoop!!!
Upcoming SlideShare
Loading in...5
×

Filesystem distribuído com hadoop!!!

729

Published on

Começão com Hadoop para file system distribuido hdfs, e processamento distribuido com map-reduce . Palestra realizado no TDC em São Paulo

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
729
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Filesystem distribuído com hadoop!!! "

  1. 1. Filesystem Distribuído com Hadoop!!! Alessandro Binhara
  2. 2. Começando com Hadoop!!! • • • • Grandes volumes de dados (Tera Bytes) Processamento dos dados Tolerância a falha Distribuição do serviço
  3. 3. Por que ??? • Requisitos – – – – 500M+ usuário únicos por mês Bilhões de eventos interessantes por dia Necessidade de scalabilidade massiva PB’s de storage, milhares de arquivos, 1000’s de nós • Necessidade de ter baixo custo – Uso de hardware comum – Compartilhar recursos com vários projetos – Fornecer escala quando necessário • Precisa de infraestrutura confiável – Deve ser capaz de lidar com falhas - hardware, software, networking • A falha é esperada, e não uma exceção – Transparente para as aplicações • muito caro para construir confiabilidade em cada aplicação • A infra-estrutura do Hadoop prove essas capacidade.
  4. 4. Começando com Hadoop!!! • Histórico – – – – Em 2004: Google publica um artigo sobre MapReduce 2005: Doug Cutting integra MapReduce no Hadoop 2006: Doug Cutting contratado pelo Yahoo Yahoo! tornou-se o promeiro contribuidor em 2006 • Escalou de 20 node para 4000 node clusters em 2010 – 2008: Cloudera é Fundada (www.cloudera.com) • Características – Escrito em Java, OpenSource – Roda em hardware comum – Linux, Mac OS/X, Windows, and Solaris
  5. 5. O que é o Hadoop • O Apache Hadoop é um projeto desenvolvimento como open-source software para escalavel , confiável e processamento distribuído. Inclui: – MapReduce e Sistema de arquivos distribuído framework para for large commodity clusters – Master/Slave – JobTracker organiza todas as tarefas e coordena o fluxo de dados entre os TaskTrackers – TaskTracker manipula todos os worker no node – Worker Task executa as operações de map ou reduce – Integra-se com HDFS com os dados localmente
  6. 6. Características do Hadoop • Um sistema escalável e confiável para armazenamento compartilhado e análises. • Ele automaticamente trata da replicação de dados e da falhas em cada nó. • Ele faz o trabalho duro - desenvolvedor pode se concentrar em processamento da lógica de dados • Permite que os aplicativos usem petabytes de dados em paralelo
  7. 7. Ecosistema Hadoop • Hadoop Core Hadoop Core – Distributed File System Distributed File System MapReduce Framework – MapReduce Framework Pig Yahoo!) • Pig (criado pelo(criado pelo Yahoo!)Runtime Parallel Programming Language e – Parallel Programming Language e Runtime Hbase (criado pelo Powerset) • Hbase (criadoTable storage for semi-structured data pelo Powerset) – Table storage for semi-structured(criado pelo Zookeaper data Yahoo!) • Zookeaper (criado pelo Yahoo!) Coordinating distributed systems – Coordinating distributed systems Hive (criado pelo Facebook) • Hive (criado pelo Facebook) and metastore SQL-like query language – SQL-like query language and metastore
  8. 8. Quem usa o Hadoop ? • • • • • Buscapé / Ebehavior Amazon/A9 Facebook Google IBM • • • • • • Joost Last.fm New York Times PowerSet Veoh Yahoo!
  9. 9. M45(open cirrus cluster ) • Colaboração com grandes universidades de pesquisa(via open cirrus) – – – – Carnegie Mellon University The University of California at Berkeley Cornell University The University of Massachusetts at Amherst joined • Seed Facility: Datacenter na caixa (DiB) – 500 nodes, 4000 cores, 3TB RAM, 1.5PB disk – Conexão de alta velocidade com a internet – Localizado no Yahoo no campu Coorporativo • Roda Hadoop • Tem sido usado no últimos 2 anos
  10. 10. Hadoop no Facebook • Cluster em produção – – – – – 4800 cores, 600 máquina, 16GB por máquina – Abril/2009 8000 cores, 1000 máquinas, 32 GB por máquina – julho/2009 4 SATA discos de 1 TB por máquina 2 níveis de rede hierarquica, 40 máquinas por rack Total do tamanho do cluster 2 PB, projetado para 12 PB no Q3 2009 • Cluster de Teste • 800 cores, 16GB cada
  11. 11. Yahoo Hadoop Cluster
  12. 12. Uso de Hardware Comum Tipicamente em 2 níveis – Nós são PCs comuns – 30-40 nodes/rack – Rack em Uplink de 3-4 gigabit – Rack-interno de 1 gigabit
  13. 13. HDFS • Inspirado em GFS • Projetado para trabalhar com arquivos muito grandes • Executado em hardware commodity • Streaming de acesso a dados • Replicação e localidade
  14. 14. HDFS • Projetado para escalar a petabytes de armazenamento, e correr em cima dos sistemas de arquivos do sistema operacional subjacente. • “NameNode” - Master – Gerencia o sistema de arquivos namespace Conhece todos os blocos de localização – lida com a replicação, exclusão, criação • “DataNode” - Slave (workers) – Manter os blocos de dados – Relatório de volta para namenode suas listas de blocos periodicamente – lida com a recuperação de dados
  15. 15. HDFS - Duplicação • Dados de entrada é copiado para HDFS é dividido em blocos • Cada blocos de dados é replicado para várias máquinas
  16. 16. HDFS – Hadoop FileSystem • Sistema de Arquivos Distribuído para grande Volumes – 10K nodes, 100 milhões de arquivos, 10 PB • Hardware Comum (comodite) – Os arquivos são replicados esperando falha de hardware – Detecção de falhas e recuperação • Otimizado para Batch Processing – Os dados ficam expostos, a computação pode ser movida onde os dados estiverem • Roda em diversos OS (win, linux, mac)
  17. 17. HDFS - MapReduce Data Flow
  18. 18. Modos de Operação • Standalone • Pseudo-distributed • Fully-distributed
  19. 19. O que é Map Reduce • MapReduce é um modelo de programação e implementação associados para o processamento e geração de grandes conjuntos de dados (Jeffrey Dean e Sanjay Ghemawat, 2004) – A ideia tem mais de 40 anos – Baseado em um modelo de programação funcional (como Lisp, Ml, etc) – Processamento de dados base em batch – A abstração limpa para programadores – Paralelização automática e distribuição – Tolerância a falhas
  20. 20. MapReduce x Hadoop MapReduce Hadoop Org Google Yahoo/Apache Impl C++ Java Distributed File Sys GFS HDFS Data Base Bigtable HBase Distributed lock mgr Chubby ZooKeeper
  21. 21. MapReduce – Função Map • Input: – Registros de alguma fonte de dados (por exemplo, linhas de arquivos, linhas de um banco de dados, ...) estão associados no par (chave, valor) • Output: – Um ou mais valores intermediários no formato (chave, valor) • Exemplo: (palavra, numero_de_ocorrencias)
  22. 22. MapReduce – Função Map
  23. 23. Exemplo – Função Map map (k, v): if (isPrime(v)) then emit (k, v) (“foo”, 7) (“foo”, 7) (“test, 10) (nothing)
  24. 24. MapReduce – Função Reduce Depois que a fase de mapeamento terminar, todos os valores intermediários vão para uma chave de saída, estes são combinadas em uma lista • Input – Valores Intermediários : – Example: (“A”, [42, 100, 312]) • Output – Normalmente, apenas um valor final por chave – Exemplo (“a”, 454)
  25. 25. MapReduce – Função Reduce
  26. 26. Exemplo – Função Reduce reduce (k, vals): sum = 0 foreach int v in vals: sum += v emit (k, sum) (“A”, [42, 100, 312]) (“A”, 454) (“B”, [12, 6, -2]) (“B”, 16)
  27. 27. MapReduce - Terminologia • Job: unidade de trabalho que o cliente quer ser realizados – Dados de entrada + programa MapReduce + configuração da informação • Task: parte do trabalho – Mapa e reduzir tarefas • Jobtracker: nó que coordena todos os trabalhos na sistema de agendamento de tarefas para rodar em tasktrackers. • TaskTracker: nós que executar tarefas e enviar o progresso ao jobtracker
  28. 28. Fluxo do Trabalho
  29. 29. Exemplo Real map (String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1");
  30. 30. Reduce reduce(String key, Iterator values): // key: a palavra // values: a lista de valores int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));
  31. 31. Map/Reduce Cluster Input files M map tasks Intermediate files R reduce tasks split 0 split 1 split 2 split 3 split 4 Vários Map ou Reduce podem ser executados em um único computador Output files Output 0 Output 1 Cada arquivo intermediário é dividido em partições R, pela função de particionamento Cada tarefa reduce corresponde uma partição
  32. 32. Execução
  33. 33. Map Reduce
  34. 34. Exemplo Java - Mapper
  35. 35. Exemplo Java – Reduce
  36. 36. JobJava
  37. 37. Passo a Passo • Os passos básicos para a execução de um trabalho Hadoop são: – Compile o seu trabalho em um arquivo JAR – Copiar dados de entrada no HDFS – Execute hadoop passando para o AJR os parametros relevantes – Monitorar tarefas via interface Web (opcional) – Examinar a saída quando o trabalho estiver completo
  38. 38. Exemplo hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100 hadoop fs -mkdir input hadoop fs -put /etc/hadoop-0.20/conf/*.xml input hadoop-0.20 fs -ls input hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep input output 'dfs[a-z.]+' hadoop-0.20 fs -mkdir inputwords hadoop-0.20 fs -put /etc/hadoop-0.20/conf/*.xml inputwords hadoop-0.20 fs -ls inputwords hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep inputwords outputwords 'dfs[a-z.]+'
  39. 39. Obrigado • • • • Alessandro de Oliveira Binhara binhara@gmail.com binahra@azuris.com.br www.facebook.com/azuriscompany
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×