treinamento hadoop - dia2

57
Treinamento Hadoop Parte 2

Upload: alexandre-uehara

Post on 04-Jul-2015

340 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Treinamento Hadoop - dia2

Treinamento Hadoop

Parte 2

Page 2: Treinamento Hadoop - dia2

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

Page 3: Treinamento Hadoop - dia2

NossaAgenda:

Page 4: Treinamento Hadoop - dia2

Dia 2!!!

Page 5: Treinamento Hadoop - dia2

Dia 1:IntroduçãoConceitos 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

Page 6: Treinamento Hadoop - dia2

Dia 2 e 3:Map Reduce e Hadoop→ História (Google)→ ConceitoMapReduce→ Hadoop→ Cases

Page 7: Treinamento Hadoop - dia2

Dia 4Outras

Ferramentas→ Ecossistema→ Ferramentas → Distribuições Hadoop→ Hadoop na Nuvem

→ NoSQL Tipos → NoSQL Exemplos → Data Science → Machine Learning

Page 8: Treinamento Hadoop - dia2

Dia 5, 6 e 7Hands-on

→ Pyhton→ Hadoop

Page 9: Treinamento Hadoop - dia2
Page 10: Treinamento Hadoop - dia2

Antes disso...

Page 11: Treinamento Hadoop - dia2

Antes disso...

lembram o quer era Big Data?

Page 12: Treinamento Hadoop - dia2

Antes disso...

lembram o quer era Big Data?

CONCEITO!!!

Page 13: Treinamento Hadoop - dia2
Page 14: Treinamento Hadoop - dia2
Page 15: Treinamento Hadoop - dia2
Page 16: Treinamento Hadoop - dia2
Page 17: Treinamento Hadoop - dia2
Page 18: Treinamento Hadoop - dia2

lembram o quer era Big Data?

Agora que entedemos que é um

CONCEITO, vamos ver a FERRAMENTA

Antes disso...

Page 19: Treinamento Hadoop - dia2
Page 20: Treinamento Hadoop - dia2

Mas o que é?

Page 21: Treinamento Hadoop - dia2

Map Reduce

Page 22: Treinamento Hadoop - dia2

Map Reduce

Hadoop é baseado no modelo de

programação MapReduce

Page 23: Treinamento Hadoop - dia2

"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

Page 24: Treinamento Hadoop - dia2

Map Reduce

Vem da onde?

Page 25: Treinamento Hadoop - dia2

Map Reduce

Framework

introduzido

pelo ...

Page 26: Treinamento Hadoop - dia2

Map Reduce

Framework

introduzido pelo

Google

Page 27: Treinamento Hadoop - dia2

Map Reduce

http://research.google.com/archive/mapreduce.html

Page 28: Treinamento Hadoop - dia2

Map Reduce

http://research.google.com/archive/mapreduce.html

Page 29: Treinamento Hadoop - dia2

Map Reduce

● Não inventou, apenas implementou

● Mas, "definiu" / "padronizou"

algorítimo e arquitetura

Page 30: Treinamento Hadoop - dia2

Map Reduce

● paradigma de programação

para processar e analisar

grandes conjuntos de dados

Page 31: Treinamento Hadoop - dia2

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

Page 32: Treinamento Hadoop - dia2

Map Reduce FileSystem

Map Reduce

Page 33: Treinamento Hadoop - dia2

Map Reduce Google FileSystem

Google Map Reduce

Page 34: Treinamento Hadoop - dia2

Map Reduce

Page 35: Treinamento Hadoop - dia2

Map Reduce

Page 36: Treinamento Hadoop - dia2

Map Reduce

Inspirado pelas funções

map e reduce usadas em

programação funcional.

Page 37: Treinamento Hadoop - dia2

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

Page 38: Treinamento Hadoop - dia2

Map Reduce

Se encarrega de toda

complexidade de

processamento

paralelo, e o

programador cuida

apenas da lógica

Page 39: Treinamento Hadoop - dia2

Map Reduce

● Você especifica

função map()

● Você especifica

função reduce()

● O framework cuida

do restante

Page 40: Treinamento Hadoop - dia2

Map Reduce

Lembra o

que era Map

/ Mapa?

Page 41: Treinamento Hadoop - dia2

Map Reduce

Map -

associação

chave-valor

(key-value) k,v

Page 42: Treinamento Hadoop - dia2

Map Reduce

● Duas fases: Map Reduce

● Entre MapReduce : shuffle e sort

Page 43: Treinamento Hadoop - dia2

Map Reduce

Page 44: Treinamento Hadoop - dia2
Page 45: Treinamento Hadoop - dia2

No Linux seria mais ou

menos:

cat /my/log | grep '*.*\.

html' | sort | uniq -c >

/output -file

Page 46: Treinamento Hadoop - dia2

Map Reduce

Map Reduce

Page 47: Treinamento Hadoop - dia2

Outros Map Reduce

● Hadoop

http://hadoop.apache.org/

● Twister

http://www.iterativemapreduce.org/

● Phoenix

http://mapreduce.stanford.edu/

● FileMap

http://mfisk.github.io/filemap/

Page 48: Treinamento Hadoop - dia2

Map Reduce

● Modelo Simples de

programação

● Sistema de arquivos

distribuidos com

gerenciamento de tarefas

Page 49: Treinamento Hadoop - dia2

Map Reduce

● Gerenciamento de cluster

● Excelente em

processamento em batch

● Não é feito para processos

online

Page 50: Treinamento Hadoop - dia2

Google Filesystem

Page 51: Treinamento Hadoop - dia2

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

Page 52: Treinamento Hadoop - dia2

Google Filesystem (GFS)

Page 53: Treinamento Hadoop - dia2

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

Page 54: Treinamento Hadoop - dia2

Google Filesystem (GFS)

● Consistência

● Escalável (pode aumentar / diminuir

sem afetar a aplicação)

● Milhares de nós

● Processamento paralelo

● Nós independentes

Page 55: Treinamento Hadoop - dia2

Map Reduce + GFS

Ou seja:

● Escalável

● Econômico

● Eficiente

● Confiável

Page 56: Treinamento Hadoop - dia2

Map Reduce

Exemplo "Word Count"

Page 57: Treinamento Hadoop - dia2

Alexandre Uehara

@AleUehara

linkedin.com/in/aleuehara

[email protected]

slideshare.net/aleuehara