SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Hadoop para Programadores Java
Aldrin Leal
<aldrin@ingenieux.com.br>
Globalcode – Open4education
Agenda
Introdução
Overview da Plataforma Hadoop
As APIs Core
Montando o seu Ambiente
Estudo de Caso
Conclusão
Globalcode – Open4education
Introdução
Aldrin Leal
Protroll
Projetos / Experiência em Hadoop
Outras Áreas:
Cloud
ALM / Release Engineering
Globalcode – Open4education
Falando nisso
Meu curso hardcore modafoca turbinado de
Serviços Web Amazônicos (AWS):
http://www.soaexpert.com.br/education/cloud
Hadoop em Breve!!!1! o/
Globalcode – Open4education
Sobre esta Palestra
Java (1.6, nível SCJP hardcore)
Foi mal
A Culpa é do Cutting!!!1!
Maven-fu
Properties, Dependency Plugin, busca de artefatos
Mas... eu já falei sobre tudo isso antes:
http://www.slideshare.net/aldrinleal
Globalcode – Open4education
Overview da Plataforma
Hadoop
Natureza da Informação
Volume de Coleta de Dados
Embaraçosamente Paralelo (Map Reduce)
Storage de Alta Disponibilidade (HDFS)
Distros: HDP CDH AWS/EMR Outros
Globalcode – Open4education
Overview da Plataforma
Hadoop
Serviços
HDFS: Namenode, Journal Node (ou 2NDD), DataNode
MapReduce: Job Tracker, Task Tracker (yarn: RM, RS,
PS, HS)
HA: Zookeeper
MapReduce
Mappers
Reducers
Combiners / Partitioners
Globalcode – Open4education
As APIs Core
Client / Common
Configuration: Leitura de Configuração
IO: Aspectos Comuns
DFS Client (HDFS)
Job Client (MapReduce)
Globalcode – Open4education
Preparando Ambiente
Local
CDH5:
http://bit.ly/cdh5-install-guide
Daemons
HDFS: NN, JN, http://localhost:50070
MR (Yarn): http://localhost:19888/
Na verdade, tudo pode rodar local e sem daemon
Útil para prototipar
Rode em Modo PseudoDistribuído pra conferir
Globalcode – Open4education
Exemplo
Rei do Camarote
Globalcode – Open4education
Exemplo
Rei do Camarote
Configuração
Leitura / Escrita
Cômputo da Conta
Globalcode – Open4education
Criando a Massa de Teste
(API Client)
Globalcode – Open4education
Modelo MapReduce
Globalcode – Open4education
Modelo MapReduce
Driver, Tool, Configurable,
ToolRunner
Job, JobConf
Mapper
Reducer
Combiner
InputFormat
InputSplit
RecordReaders
OutputFormat
Writable / WritableComparable
Counters
Globalcode – Open4education
Gerando a Massa de
Dados
Globalcode – Open4education
Job MapReduce
Cirurgias no POM
Maven Assembly Plugin
(ou shade)
Pegadinhas
InputFormat define formato de K/V do Mapper
Use o pacote .mapreduce (o .mapred é legado) sempre que
possível
hadoop jar != java jar
Jobs Map Only são mais rápidos
Relacionado: Reducers só rodam quando os maps terminam
Globalcode – Open4education
Driver
Globalcode – Open4education
Mapper
Globalcode – Open4education
Reducer
Globalcode – Open4education
Rodando
hadoop fs -rmr exemplo-tdc-2014/output
hadoop jar target/hadoop-tdc-2014-job.jar
exemplo-tdc-2014/input/01 exemplo-tdc-
2014/output/01
Debugging:
HADOOP_OPTS="-
agentlib:jdwp=transport=dt_socket,server=y,suspend=y,
address=5005"
-Dmapreduce.jobtracker.address=local
-Dmapreduce.framework.name=local
Globalcode – Open4education
Ciclo
Crie sua versão
Opcional: MRUnit para Testes
Rode o job localmente (com o filesystem local talvez)
Yarn é (bem) mais dolorido :)
Cheque seu classpath e faça testes no modo
pseudodistribuído
Assemblies
Maven Shade Plugin
???
Lucro!
Globalcode – Open4education
Limitações Óbvias
Baixo Nível de API, especialmente para MR
Serialização e Infinidade de problemas com o Writable e amigos
Gerir o Workflow de forma Prática
Gerir o Schema de Forma Prática
Soluções
Fluxo do Job: Cascading, Crunch, Kite, CDK
Serialização: Thrift, Avro, ProtocolBuffers, Parquet
Malditos Usuários: Hive / Pig
Fluxo Macro: Oozie, Azkaban
HCatalog
Globalcode – Open4education
Conclusão:
Hadoop e seus serviços
HDFS e MapReduce
Limitações e Abstrações
Globalcode – Open4education
Referências
Este projeto:
$ hg clone https://bitbucket.org/aldrinleal/hadoop-tdc-2014
Plataforma Hadoop: QCon 2014
http://pt.slideshare.net/thiagosantiago25/hadoop-ryu-
completeversion
Data-Intensive Text Processing with MapReduce
http://lintool.github.io/MapReduceAlgorithms/
MapReduce Design Patterns
http://www.slideshare.net/DonaldMiner/mapreduce-design-
patterns
Globalcode – Open4education
Dúvidas?
Globalcode – Open4education
Pensamento Final
“People prefer remembering to imagining. Memory
deals with familiar things; imagination deals with
the unknown. Imagination can be frightening – it
requires risking a departure from the familiar”
(Shimon Peres)
Globalcode – Open4education
Obrigado

Weitere ähnliche Inhalte

Ähnlich wie Hadoop para Programadores Java

Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
Maven - TDC FLN 2013
Maven - TDC FLN 2013Maven - TDC FLN 2013
Maven - TDC FLN 2013Aldrin Leal
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
Tdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das GaláxiasTdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das GaláxiasLeonardo Galani
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHPAugusto das Neves
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)Caio Candido
 
Trabalhando em ambientes php com docker
Trabalhando em ambientes php com dockerTrabalhando em ambientes php com docker
Trabalhando em ambientes php com dockerAlef Castelo
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 

Ähnlich wie Hadoop para Programadores Java (20)

Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Maven - TDC FLN 2013
Maven - TDC FLN 2013Maven - TDC FLN 2013
Maven - TDC FLN 2013
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Tdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das GaláxiasTdc2014 - Guia do Tester Técnico das Galáxias
Tdc2014 - Guia do Tester Técnico das Galáxias
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
Debug de cabo a rabo
Debug de cabo a raboDebug de cabo a rabo
Debug de cabo a rabo
 
Big Data e seu fiel companheiro Spark
Big Data e seu fiel companheiro SparkBig Data e seu fiel companheiro Spark
Big Data e seu fiel companheiro Spark
 
Trabalhando em ambientes php com docker
Trabalhando em ambientes php com dockerTrabalhando em ambientes php com docker
Trabalhando em ambientes php com docker
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 

Hadoop para Programadores Java