Your SlideShare is downloading. ×
0
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Seminário Hadoop
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Seminário Hadoop

1,608

Published on

Apache Hadoop Project

Apache Hadoop Project

Published in: Technology
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,608
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
115
Comments
2
Likes
5
Embeds 0
No embeds

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.
      Ivanilton Polato UTFPR Câmpus Campo Mourão Doutorado em Ciência da Computação DINTER IME/USP-UTFPR Janeiro/2012
      Introdução ao Apache Hadoop
  • 2.
      Motivações atuais!
    • Grandes quantidades (massivas) de dados
      • Não cabem em uma máquina!
      • 3. Demoram MUITO para processar serialmente!
    • Máquinas individuais falham!
      • Mais máquinas juntas... probabilidade maior!
      • 4. O número de nós em um cluster não é constante!
    • Computação nas nuvens
      • Disponibilidade de computação e dados
    • Escalabilidade de aplicações
      • Computação sob demanda
  • 5.
      Histórico
      Fonte: Evert Lammerts (SARA.nl)
      * http://nutch.apache.org/ ** http://labs.google.com/papers/mapreduce.html http://labs.google.com/papers/gfs.html
  • 6.
      Histórico
    • Fev/03 – Primeira biblioteca Map/Reduce na Google
    • 7. Out/03 – Artigo sobre GFS
    • 8. Dez/04 – Artigo sobre Map Reduce
    • 9. Dez/05 – Doug Cutting implementa MR e DFS no Nutch
    • 10. Fev/06 – Hadoop se torna um projeto oficial da Apache, Doug Cutting é contratado pela Yahoo!, que adota o Hadoop
    • 11. Abr/07 – Yahoo! roda Hadoop em um cluster de 1000 nós
    • 12. Jan/08 – Hadoop se transforma em um projeto principal da Apache
    • 13. Dez/11 – Apache disponibiliza versão 1.0.0
  • 14.
      O que é Apache Hadoop?
    • Framework para computação distribuída
      • Usado em clusters/grades computacionais
      • 15. Milhares de nós
      • 16. Hardware comum (Commodity cluster computing)
      • 17. Petabytes de dados
    • Open Source (licença Apache)
    • 18. Java
    • 19. Inspirado originalmente pelo GFS e MapReduce da Google
  • 20.
      Suposições do Projeto
    • Os dados que serão processados não cabem em um nó
    • 21. Cada nó é hardware comum
    • 22. Falhas acontecem
    • Ideias:
      Sistema de arquivos distribuído Replicação interna Recuperação de falhas automática
  • 23. Suposições do Projeto
    • Mover dados é caro
    • 24. Mover computação é barato
    • 25. Computação distribuída é fácil
    • Ideias:
      Mover a computação para os dados Escrever programas que são fáceis de se distribuir
  • 26.
      Composição do Apache Hadoop
    • Núcleo composto por:
      • Hadoop Common
      • 27. HDFS: distribui os dados
      • 28. MapReduce: distribui as aplicações
    • Projetos relacionados:
      • HBase: BD distribuído e escalável
      • 29. Hive e Pig: infraestrutura de DW
      Na web: http://hadoop.apache.org/
  • 30.
      Possibilidades de uso
  • 31.
      Quem usa?
    • Lista completa: http://wiki.apache.org/hadoop/PoweredBy
  • 32.
      HDFS Hadoop Distributed File System
  • 33.
      HDFS: Hadoop Distributed File System
    • Sistema de arquivos distribuído
      • Grande  ordem de 10k nós
      • 34. Milhões de arquivos
    • Projetado para hardware de baixo custo
      • Redundância por replicação
      • 35. Tolerância a falhas e recuperação
    • Otimizado para processamento em lote
      • Localização dos dados exposta
      • 36. Grande largura de banda associada
  • 37.
      HDFS: Hadoop Distributed File System
    • Coerência dos dados
      • Modelo “ write-once-ready-many ”
      • 38. Arquivos existentes sofrem apenas operações de “ append ”
    • Arquivos quebrados em pedaços (blocos)
      • Variam de 64mb (padrão) a 256mb
      • 39. Blocos distribuídos pelos nós (um arquivo é dividido em N blocos e armazenado em M nós)
      • 40. Blocos são replicados e as replicações distribuídas
  • 41.
      MapReduce
  • 42.
      A ideia
    • A ideia do paradigma de programação Map e Reduce não é nova
      • Provavelmente 40+ anos!
    • No Hadoop é a parte do framework responsável pelo processamento distribuído (paralelo) de grandes conjuntos de dados.
    • 43. Provê um modelo de programação
    • 44. Usa padrões já conhecidos:
      cat | grep | sort | unique > file input | map | shuffle | reduce > output
  • 45.
      A natureza do MapReduce
    • Map em programação funcional
      • map({1,2,3,4}, (x2))  {2,4,6,8}
      • 46. Todos os elementos são processados por um método e os elementos não afetam uns aos outros
    • Reduce em programação funcional
      • reduce({1,2,3,4}, (x))  {24}
      • 47. Todos elementos na lista são processados juntos
    • Tanto em Map quanto em Reduce:
      • A entrada é fixa (imutável), e a saída é uma nova lista
  • 48.
      Continuando...
    • O paradigma MapReduce é adequado para trabalhar com grandes quantidades de dados
      • Realiza computação sobre os dados (pouca movimentação de dados)
      • 49. Utiliza os blocos armazenados no DFS, logo não necessita divisão dos dados
    • Lida com o paralelismo
      • Um Map por bloco, se possível
  • 50.
      MapReduce no Hadoop
    • A função Map atua sobre um conjunto de entrada com chaves e valores, produzindo uma lista de chaves e valores
    • 51. A função Reduce atua sobre os valores intermediários produzidos pelo Map para, normalmente, agrupar os valores e produzir a saída
      Input
      Output
      map
      <k1, v1>
      lista(<k2, v2>)
      reduce
      <k2, lista(v2)>
      lista(<k3, v3>)
  • 52.
      Exemplos: Word Count
    • Lê arquivos texto e conta a frequência das palavras
      • Entrada: arquivos texto
      • 53. Saída: arquivo texto
        • Cada linha: palavra, separador (tab), quantidade
    • Map : gera pares de (palavra, quantidade)
    • 54. Reduce : para cada palavra, soma as quantidades
  • 55.
      Map e Reduce (Pseudo-código)
      map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, “1”); reduce(String key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));
  • 56.
      Outros exemplos: Grep
    • Procura nos arquivos de entrada por um dado padrão
    • 57. Map : emite uma linha se um padrão é encontrado
    • 58. Reduce : Copia os resultados para a saída
  • 59.
      Outros exemplos: Índice invertido
    • Gerar o índice invertido das palavras de um conjunto de arquivos dado
    • 60. Map : faz a análise dos documentos e gera pares de (palavra, docId)
    • 61. Reduce : recebe todos os pares de uma palavra, organiza os valores docId, e gera um par (palavra, lista(docId))
  • 62.
      Modelo de execução do MapReduce
  • 63.
      Exemplo de execução (Single machine)
  • 64.
      Funcionamento em um cluster
  • 65.
      MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean e Sanjay Ghemawat ACM, 2008
  • 66.
      HDFS: NameNode & DataNodes
      NameNode (NN)
    • Gerencia o namespace do sistema de arquivos
      • Mapeia nomes de arquivos para blocos
      • 67. Mapeia blocos para DataNodes
    • Gerenciamento de replicação
      DataNode (DN)
    • Servidor de blocos que armazena
      • Dados no sistema de arquivos local
      • 68. Metadados dos blocos (hash)
      • 69. Disponibiliza metadados para clientes
      Fonte: Evert Lammerts (SARA.nl)
  • 70.
      MapReduce: JobTracker & TaskTrackers
      JobTracker
    • Controla os metadados
      • Status de um job
      • 71. Status de Tasks nos TTs
    • Decide o escalonamento
      TaskTrackers
    • Solicita trabalho do JT
      • Busca código para executar do DFS
      • 72. Aplica configurações específicas dos jobs
    • Comunicam-se com o JT nas tasks
      • Enviar saídas, atualizações de tasks, matar tasks, ...
      Fonte: Evert Lammerts (SARA.nl)
  • 73.
      Possibilidades
  • 74.
      Serviços web
    • Gerenciamento de serviços web usando Hadoop:
      XiLu Zhu; Bai Wang; , &quot;Web service management based on Hadoop,&quot; Service Systems and Service Management (ICSSSM), 2011 8th International Conference on , vol., no., pp.1-6, 25-27 June 2011 doi: 10.1109/ICSSSM.2011.5959326
  • 75.  
  • 76.
      Saiba mais:
    • Livros
      • Hadoop – The Definitive Guide
        • Tom White – 2ª Ed.
      • Hadoop in Action
        • Chuck Lam – 1ª Ed.
    • Web: http://wiki.apache.org/hadoop/

×