Hadoop

377 visualizações

Publicada em

Introdução a plataforma Hadoop, conceito, história, funcionamento, componentes.

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

  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

Hadoop

  1. 1. Hadoop Gustavo de Lima Rosolen Bacharelado em Ciência da Computação Universidade Federal de São Paulo
  2. 2. Introdução ● Aplicações “big data” ○ conjunto de dados na ordem de peta bytes ○ Computação intensiva sobre os dados ● Computação paralela não é trivial ○ Divisão das subtarefas ○ Escalonamento das subtarefas ○ Balanceamento de carga
  3. 3. Motivação ● Hadoop remove a complexidade da computação de alto desempenho ● Custo eficiente ● Máquinas comuns ● Rede comum ● Tolerância a falhas automática ● Poucos administradores ● Facilidade de uso ● Poucos programadores
  4. 4. O que é Hadoop? ● Uma plataforma de software em Java de computação distribuída voltada para clusters e processamento de grandes massas de dados: ○ Código aberto ○ Implementado em Java ○ Inspirado no GFS e MapReduce do Google ○ Projeto top-level da Fundação Apache ○ Tecnologia muito utilizada
  5. 5. História ● 2003 Desenvolvedores da Google publicam artigo sobre o GFS ● 2004 Desenvolvedores da Google publicam artigo sobre o MapReduce ● 2005 Doug Cutting implementa uma versão do GFS e Mapreduce e integra ao projeto Nutch (Apache Lucene)
  6. 6. História ● 2006 Yahoo contrata Cutting para dar andamento ao projeto de código aberto ○ Projeto deixa de ser parte do Nutch e ganha o nome Hadoop ● 2007 Yahoo! anuncia sucesso na execução de uma aplicação Hadoop com aglomerado de 1000 maquinas ● 2008 Hadoop se torna um dos principais projetos da Apache
  7. 7. História ● 2009 Cloudera contrata Cutting como líder de projeto (versão comercial derivada do Hadoop) ● 2010 Facebook anuncia o maior aglomerado Hadoop do mundo (mais de 2.900 nós e 30 petabytes de dados) ● 2011 Apache disponibiliza a versão 1.0.0 ● 2012 Apache lança a versão Hadoop 2.0 (Yarn) ● 2015 Última versão disponibilizada Hadoop 2.7.0
  8. 8. Onde é usado
  9. 9. Onde é usado Yahoo! ○ Mais de 100.000 CPUs em 40.000 computadores com o Hadoop ○ Maior cluster: 4500 nós (8 núcleos com 4 TB de disco e 16 GB RAM) ○ Usado para apoio à investigação em Sistemas de anúncios e Web Search
  10. 10. Onde é usado EBay ● Cluster de 532 nodos (8 núcleos cada, 5.3PB de armazenamento). ● Uso intenso de Java MapReduce , Apache Pig, Apache Hive, HBase ● Usado para pesquisa otimização e Research.
  11. 11. Onde é usado Spotify ● Usado para geração de conteúdo, agregação de dados, relatórios e análise ● Cluster com 1300 nós (15.600 núcleos físicos, ~ 70TB RAM, ~ 60 PB de armazenamento)
  12. 12. Onde é usado LinkedIn ● Clusters: ○ 800 nós (HP SL 170x, 8 núcleos, 24GB RAM, 12 TB SATA) ○ 1900 nodos (SuperMicro X8DTT-H, 12 núcleos, 24GB de RAM, 12 TB SATA) ○ 1400 nodos (Sandy SuperMicro, 12 núcleos, 32GB de RAM, 12 TB SATA)
  13. 13. Onde é usado Facebook ● Usado para armazenar cópias de log interno, fontes de dados e fonte de informação para análise e / aprendizagem de máquina. ● Atualmente, dois grandes grupos: ● Um cluster com 1100 máquinas com 8800 núcleos e cerca de 12 PB de armazenamento bruto. ● Um conjunto de 300 máquinas com 2400 núcleos e cerca de 3 PB armazenamento bruto. ● Cada nó (commodities) tem 8 núcleos e 12 TB de armazenamento.
  14. 14. Vantagens ● Pontos positivos: ○ Código aberto ○ Econômico ○ Robusto ○ Escalável ○ Foco na regra de negócio
  15. 15. Código Aberto ● Comunidade ativa ● Apoio de grandes corporações ● Correções de erros frequentes ● Constante evolução do arcabouço
  16. 16. Econômico ● Software livre ● Uso de máquinas e redes convencionais ● Aluguel de serviços disponíveis na nuvem
  17. 17. Robusto ● Tempo médio entre falhas para 1 nó: 3 anos ● Tempo médio entre falhas para 1.000 nós: 1 dia ● Estratégias ● Replicação dos dados ● Armazenamento de metadados
  18. 18. Escalável ● Permite facilmente adicionar máquinas ao aglomerado ● Adição não implica na alteração do código-fonte ● Limitação apenas relacionada a quantidade de recursos disponíveis
  19. 19. Foco na regra de negócio ● Hadoop realiza todo o “trabalho duro” ● Desenvolvedores podem focar apenas na abstração do problema
  20. 20. Desvantagens ● Único nó mestre ● Ponto único de falha ● Pode impedir o escalonamento ● Dificuldade das aplicações paralelas ● Problemas não paralelizáveis ● Processamento de arquivos pequenos ● Muito processamento em um pequeno conjunto de dados
  21. 21. Problemas e Soluções ● Problemas ○ Os dados que serão processados não cabem em um nó ○ Cada nó é composto por hardware comum ○ Falhas podem (e irão) acontecer ● Ideias e soluções do Apache Hadoop ○ Sistema de arquivos distribuído ○ Replicação interna ○ Recuperação de falhas automática
  22. 22. Problemas e Soluções ● Problemas ○ Mover dados é caro (largura de banda pequena) ○ Mover computação é barato ○ Programação paralela e distribuída é difícil ● Ideias e soluções do Apache Hadoop ○ Mover a computação para onde estão os dados ○ Escrever programas que são fáceis de se distribuir ○ Paralelismo de dados utilizando conceitos de linguagem funcional
  23. 23. Onde não usar Hadoop ● problemas não paralelizáveis ● processamento de arquivos pequenos ● muito processamento e poucos dados
  24. 24. Principais Projetos ● Hadoop Common ● Hadoop HDFS ● Hadoop Mapreduce ● Hadoop Yarn
  25. 25. Common Hadoop Common refere-se à coleção de utilitários e bibliotecas comuns que suportam outros módulos do Hadoop.(Core) ● Paralelização automática ● Balanceamento de carga ● Otimização nas transferências de disco e rede ● Tratamento de falhas ● Robustez ● Escalabilidade
  26. 26. HDFS ● Um sistema de arquivos distribuído que fornece acesso de alto rendimento para os dados do aplicativo. ○ Sistema de arquivos distribuído ○ Arquitetura Mestre/Escravo ○ Inspirado no Google FileSystem (GFS)
  27. 27. HDFS ● Características ○ Implementado em Java ○ Armazenamento de grandes volumes de dados ○ Recuperação de dados transparente para o usuário
  28. 28. HDFS HDFS é composto de três tipos de componentes: o NameNode, o Secundary NameNode e os DataNodes. DataNodes contêm os blocos de dados. Os dados são divididos em blocos de 64 Mbytes e replicados. O fator de replicação padrão é 3. NameNode armazena todas as informações de Metadados e é um dos pontos únicos de falha do sistema. Todas as informações armazenadas neste componente são relacionadas com quais DataNodes contêm quais blocos do sistema de arquivos. Secundary NameNode funciona como um backup do NameNode em caso de falha.
  29. 29. HDFS O HDFS também trabalha com o JobTracker junto ao NameNode e o TaskTracker junto aos DataNodes JobTrackers coordenam e recebem os status dos TaskTrackers(similar ao Master do GFS). TaskTrackers garantem as operações mappers e reducers.
  30. 30. HDFS
  31. 31. Mapreduce ● Um modelo de programação especializado no processamento de conjuntos de dados distribuídos. ○ Abstrai toda a computação paralela em apenas duas funções: Map e Reduce. ○ Baseado no Google Mapreduce.
  32. 32. Yarn ● Um framework para escalonamento de tarefas e gerenciamento de recursos de um cluster. ● Funciona como uma camada de abstração para gerenciamento de recursos do cluster, permitindo assim que outros frameworks se conectem sem ter que interagir com o MapReduce.
  33. 33. Yarn O JobTracker da versão original foi separado em dois componentes diferentes: O ResourceManager e o ApplicationMaster. Além disso, o TaskTracker foi transformado no chamado NodeManager. ResourceManager serve para monitorar o status do cluster, indicando quais recursos estão disponíveis em quais nós. Container (ResourceContainer) incorpora elementos como memória, CPU, disco e rede. NodeManager é um agente do framework individual por máquina e toma conta dos containers monitorando o uso de recursos pelos containers ali presentes. ApplicationMaster gerencia a execução paralela de um job.
  34. 34. Yarn
  35. 35. Comparativo
  36. 36. outros projetos ● Avro: seriação de dados e chamada a procedimentos remotos (Remote Procedure Call ) ● Chukwa: monitoramento e coleta de dados de sistemas distribuídos ● HBase: banco de dados não-relacional distribuído e escalável (baseado no Google Bigtable) ● Hive: infraestrutura de data warehouse (relacional, SQL-like) ● ZooKeeper: coordenação de serviços distribuídos (configurações, nomes, sincronização, etc.)
  37. 37. outros projetos ● Pig: linguagem de alto-nível para expressar programas de análise de dados (Pig Latin) ● Mahout: É uma biblioteca de algoritmos de aprendizado de máquina
  38. 38. Referências http://hadoop.apache.org/ http://wiki.apache.org/hadoop/ http://developer.yahoo.com/hadoop/tutorial/ http://pig.apache.org/ http://mahout.apache.org/ http://www.imago.ufpr.br/csbc2012/ https://wiki.apache.org/hadoop/PoweredBy

×