Hadoop

1.420 visualizações

Publicada em

Apresentação do trabalho da cadeira Programação Paralela e Distribuída, do semestre 2012/A, da UNIVATES.

http://blog.brunozambiazi.com

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.420
No SlideShare
0
A partir de incorporações
0
Número de incorporações
20
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Hadoop

  1. 1. HADOOP / MapReduceBruno Dadalt ZambiaziRaniéri Geroldi
  2. 2. • Framework Java mantido pela Fundação Apache;• Solução open-source para trabalhar com big data;• Criado em 2005 com apoio de grandes empresas como Yahoo!O que é?
  3. 3. • Desenvolvimento de aplicações distribuídas;• Processamento de grandes volumes de dados.Serve para...?
  4. 4. • A partir de outro projeto da Apache chamado “Nutch”. • Mecanismo para pesquisas web.• Desenvolvedores encontravam dificuldades para realização de grandes processamentos em tempos eficientes;• Doug Cutting foi o principal responsável pelo projeto;• Yahoo! disponibilizou uma equipe de programadores para ajudar no desenvolvimento da ferramenta.Como surgiu?
  5. 5. • Indicado para organizações que necessitem de análise de grandes volumes de dados;• Áreas: • Astronomia; • Pesquisas científicas e militares; • Meteorologia; • Redes sociais; • Pesquisa em internet; • Mercado financeiro; • E-commerce.Onde utilizar?
  6. 6. • Redução de custos;• Boa documentação;• Comunidade ativa;• Adesão por parte de grandes empresas.• Estimativa: • Em cinco anos, metade dos dados digitais serão processados pelo Hadoop. (Fonte: Hortonworks, subsidiária do Yahoo!)E os benefícios?
  7. 7. • Empresas: • Adobe, Amazon, eBay, Google, IBM, LinkedIn, Twitter• Lista completa em: • http://wiki.apache.org/hadoop/PoweredBy• Principais cases: Facebook e Yahoo!Quem está usando?
  8. 8. • Tem múltiplos clusters com Hadoop;• Um dos maiores com 2.500 núcleos de CPU e 1 PB de espaço em disco;• Diariamente, carrega 250 GB de dados para o sistema de arquivos do Hadoop;• Possui centenas de jobs do Hadoop sendo executadas contra esse conjunto de dados;• Principal objetivo: recomendações (amigos, interesses, atividades, etc).Facebook??
  9. 9. • Principal objetivo: recurso de pesquisa Search Assist (sugestões de resultado em tempo real);• Resultado do Search Assist é gerado pela análise de terabytes de arquivos de log;• Tempo de geração da base do Search Assist: • Com ferramentas tradicionais: 26 dias; • Com o Hadoop: 20 minutos.Yahoo!?
  10. 10. • Composto por três subprojetos: • Hadoop Common: utilitários comuns aos demais subprojetos; • Hadoop Distributed File System (HDFS): é o sistema de armazenamento de arquivos; • Hadoop MapReduce: é quem possibilita o processamento distribuído.E como funciona?
  11. 11. • Execução de um procedimento com Hadoop: 1. Carregar os dados no HDFS; 2. Realizar as operações MapReduce; 3. Recuperar os resultados no HDFS.Resumindo...
  12. 12. • Principal tarefa: armazenamento de dados;• É o sistema de arquivos do Hadoop;• Divide os arquivos e os replica para diferentes máquinas do cluster;• Desenvolvido em Java;• Pode ser executado em máquinas com hardwares comuns;• Funciona sob o modelo master/workers.HDFS O que é?
  13. 13. • É o master (nó principal);• Gerencia o sistema de arquivos e o acesso a eles. • Conhece todos os Datanodes e onde se encontram cada pedaço de determinado arquivo.• Representa o JobTracker, serviço que delega e monitora o status das tarefas. • Permite reexecução de tarefas que falharam.HDFS Namenode
  14. 14. • É o worker, nó participante;• Armazena pedaços dos arquivos. • Um arquivo de entrada é dividido em blocos, que são replicados para diversos Datanodes; • Cada “pedaço” varia entre 64 MB e 128 MB.• Possui um TaskTracker que executa as tarefas delegadas pelo JobTracker (do Namenode).HDFS Datanode
  15. 15. HDFS Namenode / Datanode
  16. 16. • API Java;• Interface de linha de comando:Principais comandosAjuda: ./hadoop fs -helpCriação de diretório: ./hadoop fs –mkdir my_folderListagem de arquivos: ./hadoop fs –ls my_folderEnvio de arquivo: ./hadoop fs –put /tmp/my_file.txt my_folderVisualização de arquivo: ./hadoop fs –cat my_folder/my_file.txtBusca de arquivo: ./hadoop fs –get my_folder/my_file.txtRemoção de diretório: ./hadoop fs –rmr my_folderHDFS Como utilizar?
  17. 17. • Principal tarefa: processamento paralelo;• Simplifica o processamento de dados em grande escala;• Pode ser utilizado tanto sobre sistemas de arquivos (dados não-estruturado) quanto sobre bancos de dados (dados estruturados);• Processamento composto de duas fases: • Map (mapear) • Reduce (reduzir, simplifcar)MapReduce O que é?
  18. 18. • Master recebe a entrada e divide em problemas menores;• Cada “subproblema” é então distribuído para algum worker;• Os workers trabalham no subproblema, gravam seu resultado no disco local e depois enviam o resultado através da rede para o master;• A saída é composta por pares de informação formados por chave-valor.MapReduce A fase Map
  19. 19. • O master recebe a resposta de todos os nós participantes do processamento;• As respostas são, então, combinadas de alguma forma para que se obtenha a resposta do problema original.MapReduce A fase Reduce
  20. 20. 192.168.1.102, 03-01-2012, 10:30 Map 192.168.1.100, 11-01-2012, 11:47 192.168.1.102, 11-01-2012, 13:32 Entrada 192.168.1.89, 13-01-2012, 08:27 192.168.1.102, 14-01-2012, 16:01 192.168.1.102, 1 192.168.1.100, 1 192.168.1.102, 1 192.168.1.102, 3 192.168.1.89, 1 192.168.1.100, 1 192.168.1.102, 1 Reduce 192.168.1.89, 1MapReduce Exemplo
  21. 21. • Três possibilidades de comportamento do Hadoop: • Local: é executado em apenas uma JVM, sendo a configuração adequada em tempo de desenvolvimento; • Pseudo-distribuído: serviços background do Hadoop executam localmente, simulando um cluster; • Totalmente distribuído: serviços background do Hadoop executam num cluster real.Configuração
  22. 22. • Possuem o Hadoop como mecanismo central: • Cassandra: sistema de banco de dados distribuído; • HBase: sistema de banco de dados distribuído; • Hive: infraestrutura de data warehouse que transforma consultas HiveQL (dialeto SQL) em tarefas MapReduce; • Pig: linguagem de alto nível para simplificar e agilizar a criação de tarefas de análise de dados.Projetos Apache
  23. 23. Hadoop é feito para criar soluções para desenvolvedoresque por acaso têm muitos dados para armazenar, ou muitosdados para analisar, ou muitas máquinas para coordenar, eque não têm tempo, habilidade, ou vontade de se tornar um especialista em sistemas distribuídos a ponto de preparar uma infraestrutura para lidar com tudo isso. Tom White, Hadoop – The Definitive GuideDefinição
  24. 24. • Big Data na plataforma Java. Revista Java Magazine, edição nº 103• http://hadoop.apache.org/common/docs/r1.0.3/cluster_set up.html• http://www.michael-noll.com/tutorials/running-hadoop- on-ubuntu-linux-multi-node-cluster/• http://www.ibm.com/developerworks/br/cloud/library/l- hadoop-1/?ca=drs-• http://forum.imasters.com.br/topic/411551- processamento-de-dados-distribuidos-com-hadoop-parte- 02-indo-mais-longe/Referências

×