Este documento apresenta uma palestra sobre Hadoop para programadores Java. A palestra inclui uma introdução à plataforma Hadoop, as APIs core do Hadoop, como montar um ambiente Hadoop localmente e um estudo de caso sobre processamento de dados com Hadoop. A palestra também discute limitações da plataforma Hadoop e abstrações para lidar com essas limitações.
4. 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/
5. 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
6. 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
8. Globalcode – Open4education
As APIs Core
Client / Common
Configuration: Leitura de Configuração
IO: Aspectos Comuns
DFS Client (HDFS)
Job Client (MapReduce)
9. 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
16. 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
21. 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!
22. 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
26. 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)