Treinamento Hadoop
Parte 2
Alexandre Uehara
● Analista Desenvolvedor (E-commerce)
● Coordenador Trilha Big Data (TDC
2013)
http://www.thedevelopersconference.com.
br/tdc/2013/saopaulo/trilha-bigdata#programacao
● Geek e nerd, trabalha com Python,
Java, C, BigData, NoSQL, e outras
coisas mais que aparecem no dia a dia
Nossa
Agenda:
Dia 2!!!
Dia 1:
Introdução
Conceitos Básicos
Big Data
→ O que é?
→ 4 V's
→ Por que
agora?
→ Onde Usar?
→ Desafio
→ BI x Big Data
→Profissional de
Big Data
→ Ferramentas
→ Dicas
Dia 2 e 3:
Map Reduce e
Hadoop
→ História
(Google)
→ Conceito
MapReduce
→ Hadoop
→ Cases
Dia 4
Outras
Ferramentas
→ Ecossistema
→ Ferramentas
→ Distribuições
Hadoop
→ Hadoop na
Nuvem
→ NoSQL Tipos
→ NoSQL
Exemplos
→ Data Science
→ Machine
Learning
Dia 5, 6 e 7
Hands-on
→ Pyhton
→ Hadoop
Antes disso...
Antes disso...
lembram o quer era Big Data?
Antes disso...
lembram o quer era Big Data?
CONCEITO!!!
lembram o quer era Big Data?
Agora que entedemos que é um
CONCEITO, vamos ver a FERRAMENTA
Antes disso...
Mas o que é?
Map Reduce
Map Reduce
Hadoop é baseado no modelo de
programação MapReduce
"MapReduce é um modelo de
programação desenhado para processar
grandes volumes de dados em paralelo,
dividindo o trabalho em um conjunto
de tarefas independentes."
http://en.wikipedia.org/wiki/MapReduce
Map Reduce
Vem da onde?
Map Reduce
Framework
introduzido
pelo ...
Map Reduce
Framework
introduzido pelo
Google
Map Reduce
http://research.google.com/archive/mapreduce.html
Map Reduce
http://research.google.com/archive/mapreduce.html
Map Reduce
● Não inventou, apenas implementou
● Mas, "definiu" / "padronizou"
algorítimo e arquitetura
Map Reduce
● paradigma de programação
para processar e analisar
grandes conjuntos de dados
Map Reduce
● Processamento tolerante a falha e
fácil abstração
● Facilidade de escalar
● Decompõe tudo em Pares - chave :
valor
● Depois sumariza os resultados
Map Reduce FileSystem
Map Reduce
Map Reduce Google
FileSystem
Google Map
Reduce
Map Reduce
Map Reduce
Map Reduce
Inspirado pelas funções
map e reduce usadas em
programação funcional.
Map Reduce
"Programação funcional é um paradigma de programação que trata a
computação como uma avaliação de funções matemáticas e que evita
estados ou dados mutáveis. Ela enfatiza a aplicação de funções, em
contraste da programação imperativa, que enfatiza mudanças no
estado do programa"
Wikipedia - http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional
Exemplos de linguagem:
● Lisp
● Haskell
● Scala
Map Reduce
Se encarrega de toda
complexidade de
processamento
paralelo, e o
programador cuida
apenas da lógica
Map Reduce
● Você especifica
função map()
● Você especifica
função reduce()
● O framework cuida
do restante
Map Reduce
Lembra o
que era Map
/ Mapa?
Map Reduce
Map -
associação
chave-valor
(key-value) k,v
Map Reduce
● Duas fases: Map Reduce
● Entre MapReduce : shuffle e sort
Map Reduce
No Linux seria mais ou
menos:
cat /my/log | grep '*.*.
html' | sort | uniq -c >
/output -file
Map Reduce
Map Reduce
Outros Map Reduce
● Hadoop
http://hadoop.apache.org/
● Twister
http://www.iterativemapreduce.org/
● Phoenix
http://mapreduce.stanford.edu/
● FileMap
http://mfisk.github.io/filemap/
Map Reduce
● Modelo Simples de
programação
● Sistema de arquivos
distribuidos com
gerenciamento de tarefas
Map Reduce
● Gerenciamento de cluster
● Excelente em
processamento em batch
● Não é feito para processos
online
Google
Filesystem
Google Filesystem (GFS)
● Sistema de arquivos distribuídos
otimizados para atuar em dados não
estruturados
● Necessário pois os arquivos pode
começar a tornar grandes demais para
serem armazenados em apenas uma
máquina
Google Filesystem (GFS)
Google Filesystem (GFS)
● Tolerancia a falhas (se falhar um nó,
automaticamente replica para outro)
● Suporte a falha parcial
● Suporte a recuperação de
dados
● Suporte a recuperação
individual de nós
Google Filesystem (GFS)
● Consistência
● Escalável (pode aumentar / diminuir
sem afetar a aplicação)
● Milhares de nós
● Processamento paralelo
● Nós independentes
Map Reduce + GFS
Ou seja:
● Escalável
● Econômico
● Eficiente
● Confiável
Map Reduce
Exemplo "Word Count"
Alexandre Uehara
@AleUehara
linkedin.com/in/aleuehara
uehara.alexandre@gmail.com
slideshare.net/aleuehara

Treinamento Hadoop - dia2