Filesystem distribuído com hadoop!!!
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Filesystem distribuído com hadoop!!!

  • 957 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
957
On Slideshare
611
From Embeds
346
Number of Embeds
2

Actions

Shares
Downloads
9
Comments
0
Likes
1

Embeds 346

http://www.azuris.com.br 345
https://translate.googleusercontent.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Filesystem Distribuído com Hadoop!!! Alessandro Binhara
  • 2. Começando com Hadoop!!! • • • • Grandes volumes de dados (Tera Bytes) Processamento dos dados Tolerância a falha Distribuição do serviço
  • 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. 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. 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. 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. 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. Quem usa o Hadoop ? • • • • • Buscapé / Ebehavior Amazon/A9 Facebook Google IBM • • • • • • Joost Last.fm New York Times PowerSet Veoh Yahoo!
  • 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. 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. Yahoo Hadoop Cluster
  • 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. 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. 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. HDFS - Duplicação • Dados de entrada é copiado para HDFS é dividido em blocos • Cada blocos de dados é replicado para várias máquinas
  • 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. HDFS - MapReduce Data Flow
  • 18. Modos de Operação • Standalone • Pseudo-distributed • Fully-distributed
  • 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. 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. 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. MapReduce – Função Map
  • 23. Exemplo – Função Map map (k, v): if (isPrime(v)) then emit (k, v) (“foo”, 7) (“foo”, 7) (“test, 10) (nothing)
  • 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. MapReduce – Função Reduce
  • 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. 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. Fluxo do Trabalho
  • 29. Exemplo Real map (String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1");
  • 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. 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. Execução
  • 33. Map Reduce
  • 34. Exemplo Java - Mapper
  • 35. Exemplo Java – Reduce
  • 36. JobJava
  • 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. 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. Obrigado • • • • Alessandro de Oliveira Binhara binhara@gmail.com binahra@azuris.com.br www.facebook.com/azuriscompany