Filesystem distribuído com hadoop!!!

  • 668 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
668
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
11
Comments
0
Likes
1

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. 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