SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Hadoop
Gustavo de Lima Rosolen
Bacharelado em Ciência da Computação
Universidade Federal de São Paulo
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
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 é 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
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)
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
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
Onde é usado
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
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.
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)
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)
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
● 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 Hadoop
● 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
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.
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.
HDFS
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.
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.
Yarn
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

Mais conteúdo relacionado

Mais procurados

Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...Alex Camargo
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1Bruno Catão
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoJessyka Lage
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSSledsifes
 

Mais procurados (20)

Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Java - Primeiros passos
Java - Primeiros passosJava - Primeiros passos
Java - Primeiros passos
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
React JS - Parte 1
React JS - Parte 1React JS - Parte 1
React JS - Parte 1
 
Introdução a HTML5
Introdução a HTML5Introdução a HTML5
Introdução a HTML5
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Gerência de Requisitos
Gerência de RequisitosGerência de Requisitos
Gerência de Requisitos
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 

Destaque

Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Felipe Schimith Batista
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataSandro Andrade
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 
Ecossistema Hadoop no Magazine Luiza
Ecossistema Hadoop no Magazine LuizaEcossistema Hadoop no Magazine Luiza
Ecossistema Hadoop no Magazine LuizaNelson Forte
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceFelipe RENZ - MBA TI / Big
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
Introducción a hadoop
Introducción a hadoopIntroducción a hadoop
Introducción a hadoopdatasalt
 

Destaque (8)

Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
Ecossistema Hadoop no Magazine Luiza
Ecossistema Hadoop no Magazine LuizaEcossistema Hadoop no Magazine Luiza
Ecossistema Hadoop no Magazine Luiza
 
Proposta de arquitetura Hadoop
Proposta de arquitetura HadoopProposta de arquitetura Hadoop
Proposta de arquitetura Hadoop
 
Arquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open sourceArquitetura para solução Big Data – open source
Arquitetura para solução Big Data – open source
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
Introducción a hadoop
Introducción a hadoopIntroducción a hadoop
Introducción a hadoop
 

Semelhante a Hadoop

Big Data Open Source com Hadoop
Big Data Open Source com HadoopBig Data Open Source com Hadoop
Big Data Open Source com HadoopAmbiente 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 - CuritibaMarcio Junior Vieira
 
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 Ambiente Livre
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
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...Ambiente Livre
 
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 WebMeritt - Cada Aluno é Único
 
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 DataVinícius Barros
 
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.Ambiente Livre
 
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 hadooptdc-globalcode
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceMatteus Barbosa
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big DataDeep Tech Brasil
 
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software LivrePalestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software LivreAmbiente Livre
 
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 FabricDenodo
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 
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 sourceMatheus Espanhol
 

Semelhante a Hadoop (20)

Hadoop
HadoopHadoop
Hadoop
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Big Data Open Source com Hadoop
Big Data Open Source com HadoopBig Data Open Source com Hadoop
Big Data Open Source com Hadoop
 
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
 
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
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
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...
 
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
 
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
 
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.
 
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
 
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduceApresentação em Aplicações Distribuídas – Hadoop MapReduce
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
[DTC21] Lucas Gomes - Do 0 ao 100 no Big Data
 
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software LivrePalestra: Cientista de Dados – Dominando o Big Data com Software Livre
Palestra: Cientista de Dados – Dominando o Big Data com Software Livre
 
MapReduce
MapReduceMapReduce
MapReduce
 
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
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 
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
 

Último

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Hadoop

  • 1. Hadoop Gustavo de Lima Rosolen Bacharelado em Ciência da Computação Universidade Federal de São Paulo
  • 2.
  • 3. 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
  • 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 é 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
  • 6. 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)
  • 7. 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
  • 8. 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
  • 10. 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
  • 11. 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.
  • 12. 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)
  • 13. 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)
  • 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 ● 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 Hadoop ● 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. 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.
  • 30. 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.
  • 31. HDFS
  • 32. 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.
  • 33. 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.
  • 34. 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.
  • 35. Yarn
  • 37. 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.)
  • 38. 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