treinamento hadoop - dia2

Post on 04-Jul-2015

340 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

NossaAgenda:

Dia 2!!!

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

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

Dia 4Outras

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

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

Dia 5, 6 e 7Hands-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

top related