SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
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 os dados
● Computação paralela não é trivial
○ Divisão das subtarefas
○ Escalonamento das subtarefas
○ Balanceamento de carga
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
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
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
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
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 4*1 TB de disco e 16 GB
RAM)
○ Usado para apoio à investigação em Sistemas de anúncios e Web
Search
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.
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
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)
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.
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 arcabouço
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 entre falhas para 1.000 nós: 1 dia
● Estratégias
● Replicação dos dados
● Armazenamento de metadados
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
Foco na regra de negócio
● Hadoop realiza todo o “trabalho duro”
● Desenvolvedores podem focar apenas na
abstração do problema
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
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
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
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)
● Paralelização automática
● Balanceamento de carga
● Otimização nas transferências de disco e rede
● Tratamento de falhas
● Robustez
● Escalabilidade
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)
HDFS
● Características
○ Implementado em Java
○ Armazenamento de grandes volumes de dados
○ Recuperação de dados transparente para o usuário
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
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.
Comparativo
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.)
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Flavio Fonte, PMP, ITIL
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código aberto
Suissa
 

Was ist angesagt? (20)

Conversas sobre Big Data, Hadoop e elefantes amarelos
Conversas sobre Big Data, Hadoop e elefantes amarelosConversas sobre Big Data, Hadoop e elefantes amarelos
Conversas sobre Big Data, Hadoop e elefantes amarelos
 
Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...Explorando os principais implementadores hadoop e o papel que eles exercem no...
Explorando os principais implementadores hadoop e o papel que eles exercem no...
 
Treinamento Hadoop - dia2
Treinamento Hadoop - dia2Treinamento Hadoop - dia2
Treinamento Hadoop - dia2
 
Machine learning com Apache Spark
Machine learning com Apache SparkMachine learning com Apache Spark
Machine learning com Apache Spark
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
Hbase trabalho final
Hbase trabalho finalHbase trabalho final
Hbase trabalho final
 
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
 
Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema. Bigdata - compreendendo Hadoop e seu ecossistema.
Bigdata - compreendendo Hadoop e seu ecossistema.
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
 
OverviewBigData_PythonSudeste2017
OverviewBigData_PythonSudeste2017OverviewBigData_PythonSudeste2017
OverviewBigData_PythonSudeste2017
 
A importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big DataA importância do ecossistema Java em aplicações baseadas em Big Data
A importância do ecossistema Java em aplicações baseadas em Big Data
 
Introdução ao Apache Hadoop
Introdução ao Apache HadoopIntrodução ao Apache Hadoop
Introdução ao Apache Hadoop
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código aberto
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebram
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Big Data
Big DataBig Data
Big Data
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 

Ähnlich wie Hadoop

Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
Suissa
 

Ähnlich wie Hadoop (20)

Hadoop
HadoopHadoop
Hadoop
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - CuritibaPalestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Hadoop
HadoopHadoop
Hadoop
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoop
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
Interoperabilidade com BigData Hadoop para Windows Azure
Interoperabilidade com BigData Hadoop  para Windows AzureInteroperabilidade com BigData Hadoop  para Windows Azure
Interoperabilidade com BigData Hadoop para Windows Azure
 
Big Data, JVM e Redes Sociais
Big Data, JVM e Redes SociaisBig Data, JVM e Redes Sociais
Big Data, JVM e Redes Sociais
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
 
Indústria 4.0: como a IoT e Big Data mudarão a forma como lidamos com a tecno...
Indústria 4.0: como a IoT e Big Data mudarão a forma como lidamos com a tecno...Indústria 4.0: como a IoT e Big Data mudarão a forma como lidamos com a tecno...
Indústria 4.0: como a IoT e Big Data mudarão a forma como lidamos com a tecno...
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
Ciclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do HadoopCiclo 4 - Instalação do Hadoop
Ciclo 4 - Instalação do Hadoop
 
Big data e ecossistema hadoop
Big data e ecossistema hadoopBig data e ecossistema hadoop
Big data e ecossistema hadoop
 

Hadoop

  • 1. Hadoop Gustavo de Lima Rosolen Bacharelado em Ciência da Computação Universidade Federal de São Paulo
  • 2.
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. História ● 2012 Apache lança a versão Hadoop 2.0 (Yarn) ● 2015 Última versão disponibilizada Hadoop 2.7.0
  • 10. 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
  • 11. 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.
  • 12. 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
  • 13. 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)
  • 14. 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.
  • 15. Vantagens ● Pontos positivos: ○ Código aberto ○ Econômico ○ Robusto ○ Escalável ○ Foco na regra de negócio
  • 16. Código Aberto ● Comunidade ativa ● Apoio de grandes corporações ● Correções de erros frequentes ● Constante evolução do arcabouço
  • 17. Econômico ● Software livre ● Uso de máquinas e redes convencionais ● Aluguel de serviços disponíveis na nuvem
  • 18. 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
  • 19. 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
  • 20. Foco na regra de negócio ● Hadoop realiza todo o “trabalho duro” ● Desenvolvedores podem focar apenas na abstração do problema
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. Onde não usar ● problemas não paralelizáveis ● processamento de arquivos pequenos ● muito processamento e poucos dados
  • 25. Principais Projetos ● Hadoop Common ● Hadoop HDFS ● Hadoop Mapreduce ● Hadoop Yarn
  • 26. 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
  • 27. 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)
  • 28. HDFS ● Características ○ Implementado em Java ○ Armazenamento de grandes volumes de dados ○ Recuperação de dados transparente para o usuário
  • 29. 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
  • 30. 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.
  • 32. 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.)
  • 33. 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