Hadoop
Gustavo de Lima Rosolen
Bacharelado em Ciência da Computação
Universidade Federal de São Paulo
Introdução
● Uso potêncial em aplicações big data
○ conjunto de dados na ordem de peta bytes
○ Computação intensiva sobre ...
Motivação
● Hadoop remove a complexidade da computação de alto
desempenho
● Custo eficiente
● Máquinas comuns
● Rede comum...
O que é
● Uma plataforma de software em Java de computação
distribuída voltada para clusters e processamento de
grandes ma...
História
● 2003 Google publica artigo do GFS
● 2004 Google publica artigo do MapReduce
● 2005 Doug Cutting cria uma versão...
História
● 2007 Yahoo! Inc. se torna o maior contribuidor e
utilizador do projeto (aglomerado com mais de 1.000
nós)
● 200...
História
● 2012 Apache lança a versão Hadoop 2.0 (Yarn)
● 2015 Última versão disponibilizada Hadoop 2.7.0
Onde é usado
Onde é usado
Yahoo!
○ Mais de 100.000 CPUs em 40.000 computadores com o Hadoop
○ Maior cluster: 4500 nós (2*4 núcleos com ...
Onde é usado
EBay
● Cluster de 532 nodos (8 * 532 núcleos, 5.3PB).
● Uso intenso de Java MapReduce , Apache Pig, Apache Hi...
Onde é usado
Spotify
● Usado para geração de conteúdo, agregação de dados, relatórios e
análise
● Cluster com 1300 nodos: ...
Onde é usado
LinkedIn
● Clusters:
○ 800 nodos (HP SL 170x, com núcleos de 2x4, 24GB RAM, 6x2TB
SATA)
○ 1900 nodos (SuperMi...
Onde é usado
Facebook
● Usado para armazenar cópias de log interno, fontes de dados e fonte de
informação para análise e /...
Vantagens
● Pontos positivos:
○ Código aberto
○ Econômico
○ Robusto
○ Escalável
○ Foco na regra de negócio
Código Aberto
● Comunidade ativa
● Apoio de grandes corporações
● Correções de erros frequentes
● Constante evolução do ar...
Econômico
● Software livre
● Uso de máquinas e redes convencionais
● Aluguel de serviços disponíveis na nuvem
Robusto
● Se em 1 máquina há probabilidade de haver falhas...
● Tempo médio entre falhas para 1 nó: 3 anos
● Tempo médio e...
Escalável
● Permite facilmente adicionar máquinas ao aglomerado
● Adição não implica na alteração do código-fonte
● Limita...
Foco na regra de negócio
● Hadoop realiza todo o “trabalho duro”
● Desenvolvedores podem focar apenas na
abstração do prob...
Desvantagens
● Único nó mestre
● Ponto único de falha
● Pode impedir o escalonamento
● Dificuldade das aplicações paralela...
Problemas e Soluções
● Problemas
○ Os dados que serão processados não cabem em
um nó
○ Cada nó é composto por hardware com...
Problemas e Soluções
● Problemas
○ Mover dados é caro (largura de banda pequena)
○ Mover computação é barato
○ Programação...
Onde não usar
● problemas não paralelizáveis
● processamento de arquivos pequenos
● muito processamento e poucos dados
Principais Projetos
● Hadoop Common
● Hadoop HDFS
● Hadoop Mapreduce
● Hadoop Yarn
Common
Hadoop Common refere-se à coleção de utilitários e
bibliotecas comuns que suportam outros módulos do
Hadoop.(Core)
...
HDFS
● Um sistema de arquivos distribuído que fornece acesso
de alto rendimento para os dados do aplicativo.
○ Sistema de ...
HDFS
● Características
○ Implementado em Java
○ Armazenamento de grandes volumes de dados
○ Recuperação de dados transpare...
Mapreduce
● Um modelo de programação especializado no
processamento de conjuntos de dados distribuídos.
○ Abstrai toda a c...
Yarn
● Um framework para escalonamento de tarefas e
gerenciamento de recursos de um cluster
● Funciona como uma camada de ...
Comparativo
outros projetos
● Avro: seriação de dados e chamada a procedimentos
remotos (Remote Procedure Call )
● Chukwa: monitoramen...
outros projetos
● Pig: linguagem de alto-nível para expressar programas
de análise de dados (Pig Latin)
● Mahout: É uma bi...
Referências
http://hadoop.apache.org/
http://wiki.apache.org/hadoop/
http://developer.yahoo.com/hadoop/tutorial/
http://pi...
Hadoop
Próximos SlideShares
Carregando em…5
×

Hadoop

336 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
336
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
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 ● Uso potêncial em 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 é ● 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 Google publica artigo do GFS ● 2004 Google publica artigo do MapReduce ● 2005 Doug Cutting cria uma versão do MapReduce para o projeto Nutch ● 2006 Hadoop se torna um subprojeto do Apache Lucene
  6. 6. História ● 2007 Yahoo! Inc. se torna o maior contribuidor e utilizador do projeto (aglomerado com mais de 1.000 nós) ● 2008 Hadoop deixa a tutela do projeto Lucene e se transforma em um projeto top-level da Apache ● 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
  7. 7. História ● 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 (2*4 núcleos com 4*1 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 * 532 núcleos, 5.3PB). ● 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 nodos: 15.600 núcleos físicos, ~ 70TB RAM, ~ 60 PB de armazenamento ● Uso crescendo rapidamente
  12. 12. Onde é usado LinkedIn ● Clusters: ○ 800 nodos (HP SL 170x, com núcleos de 2x4, 24GB RAM, 6x2TB SATA) ○ 1900 nodos (SuperMicro X8DTT-H, com núcleos de 2x6, 24GB de RAM, 6x2TB SATA) ○ 1400 nodos (Sandy SuperMicro com núcleos 2x6, 32GB de RAM, 6x2TB 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 ● Se em 1 máquina há probabilidade de haver falhas... ● 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 ● 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. 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
  29. 29. 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.
  30. 30. Comparativo
  31. 31. 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.)
  32. 32. 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
  33. 33. 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

×