Escolar Documentos
Profissional Documentos
Cultura Documentos
Apache Hadoop - Conceitos Teóricos e Práticos Evolução e Novas Possibilidades PDF
Apache Hadoop - Conceitos Teóricos e Práticos Evolução e Novas Possibilidades PDF
Apache Hadoop
Conceitos tericos e prticos, evoluo
e novas possibilidades
Daniel Cordeiro
Motivao
Motivao
Apache Hadoop
Hadoop remove a complexidade da computao de alto
desempenho
Custo eficiente
Mquinas comuns
Rede comum
Tolerncia a falhas automtica
Poucos administradores
Facilidade de uso
Poucos programadores
Hadoop
Histrico
* http://nutch.apache.org/
** http://labs.google.com/papers/mapreduce.html
http://labs.google.com/papers/gfs.html
Origem (I)
Origem (II)
Quem utiliza?
http://open.blogs.nytimes.com/2007/11/01/self-service-prorated-super-computing-fun/
Daniel Cordeiro (IME/USP) danielc@ime.usp.br ERAD/SP 25 de julho de 2012 9 / 88
Apache Hadoop
Introduo
Soluo para:
Data warehouse
Business intelligence
Aplicaes analticas
Mdias sociais
Muitas possibilidades...
Vantagens
Vantagem I
Cdigo Aberto
Comunidade ativa
Apoio de grandes corporaes
Correes de erros frequentes
Constante evoluo do arcabouo
Vantagem II
Econmico
Software livre
Uso de mquinas e redes convencionais
Aluguel de servios disponveis na nuvem:
Amazon Elastic MapReduce
Google App Engine MapReduce
etc.
Vantagem III
Robusto
Se em 1 mquina h probabilidade de haver falhas...
Tempo mdio entre falhas para 1 n: 3 anos
Tempo mdio entre falhas para 1.000 ns: 1 dia
Estratgias
Replicao dos dados
Armazenamento de metadados
Vantagem IV
Escalvel
Permite facilmente adicionar mquinas ao aglomerado
Adio no implica na alterao do cdigo-fonte
Limitao apenas relacionada a quantidade de recursos
disponveis
Vantagem V
Desvantagens
nico n mestre
Ponto nico de falha
Pode impedir o escalonamento
Problemas
Os dados que sero processados no cabem em um n
Cada n composto por hardware comum
Falhas podem (e iro) acontecer
Problemas
Mover dados caro (largura de banda pequena)
Mover computao barato
Programao paralela e distribuda difcil
Word Count
Gerar uma lista de frequncia das palavras em um conjunto grande
de arquivos: ordem de terabytes!
Em um mundo no paralelo
Assuma que a mquina tem memria suficiente (> 1 TB !)
word-count() {
for each document d {
for each word w in d {
w_count[w]++
}
}
save w_count to persistent storage
}
Google MapReduce
MapReduce
A natureza do Map
A natureza do Reduce
O modelo implementado
MapReduce no Hadoop
Entrada Sada
map <k1, v1> lista(<k2, v2>)
reduce <k2, lista(v2)> lista(<k3, v3>)
entrada1.txt
(Minicursos, 1)
Minicursos ERAD (ERAD, 2)
2012 ERAD 2012 (2012, 2)
em Campinas (em, 1) (2012, [2,2]) (2012, 4) 2012, 4
(Campinas, 1) (Campinas, [1,1]) (Campinas, 2) Campinas, 2
(em,[1,0]) (em, 1) em, 1
(ERAD, [2,2]) (ERAD, 4) ERAD, 4
(Hadoop, [0,1]) (Hadoop,1) Hadoop,1
entrada2.txt (Minicursos, [1,1]) (Minicursos, 2) Minicursos, 2
(Minicursos, 1)
Minicursos (Hadoop, 1) (SP, [0,1]) (SP, 1) SP, 1
Hadoop ERAD (ERAD, 2)
2012 ERAD 2012 (2012,2)
Campinas SP (Campinas, 1)
(SP, 1)
Ilustrando o Grep
Subprojetos do Hadoop
Hadoop Common
Hadoop MapReduce
Hadoop Distributed File System (HDFS)
O Hadoop Common
Componentes do Hadoop
N Mestre
NameNode
SecondaryNameNode
JobTracker
Ns Escravos
DataNode
TaskTracker
NameNode
DataNode
SecondaryNameNode
N auxiliar do HDFS
Realiza pontos de checagem em intervalos pr-definidos
Permite manter o nvel de desempenho do NameNode
JobTracker
TaskTracker
Resumindo...
Formas de execuo
Local
Pseudo-distribuda
Completamente distribuda
Formas de execuo
Execuo local:
Configurao padro
Recomendvel para a fase de desenvolvimento e testes
Aplicao executada na mquina local
Formas de execuo
Execuo pseudo-distribuda:
Cluster de uma mquina s
Configurao similar do processamento em um cluster...
... porm, o processamento continua sendo executado na
mquina local
Formas de execuo
Demo
HDFS
Caractersticas
Sistema de arquivos distribudo
Arquitetura Mestre/Escravo
Inspirado no Google FileSystem (GFS)
Caractersticas
Implementado em Java
Armazenamento de grandes volumes de dados
Recuperao de dados transparente para o usurio
Diviso em blocos
Replicao de dados
Exemplo
Apache Pig
Problema:
Suponha que voc tenha dados Juno por nome
Pegar as 5 primeiras
Cdigo em MapReduce
Execuo
Pig Hive
Pipelines Ferramentas de Business
Processamento iterativo Intelligence
Pesquisa Anlise a posteriori
Destaques do Pig
Eval functions:
AVG MAX
CONCAT MIN
COUNT
SIZE
COUNT_STAR
DIFF SUM
IsEmpty TOKENIZE
Funes matemticas
ABS LOG
ACOS LOG10
ASIN RANDOM
ATAN
ROUND
CBRT
SIN
CEIL
SINH
COS
COSH SQRT
EXP TAN
FLOOR TANH
Acessando o Pig
Modos de execuo
Grunt Shell: modo iterativo, comandos so digitados
manualmente usando um shell iterativo
Arquivo de script: os comandos so definidos em um arquivo
de script
Modo embutido: os comandos do Pig podem ser executados
de dentro de um outro programa
Modos de distribuio
Modo local, as tarefas MapReduce so executadas na mquina
local
Modo Hadoop (MapReduce): a plataforma executa as tarefas
MapReduce em uma instalao do Hadoop e do HDFS remota
Daniel Cordeiro (IME/USP) danielc@ime.usp.br ERAD/SP 25 de julho de 2012 74 / 88
Apache Hadoop
Apache Pig
Script
Modo embutido
public class idlocal{
public static void main(String[] args) {
try {
PigServer pigServ = new PigServer("mapreduce");
runIdQuery(pigServer, "passwd");
} catch(Exception e) {}
}
public static void runIdQuery(PigServer pigServ, String inputFile)
throws IOException {
pigServ.registerQuery("A = load " + inputFile + " using PigStorage(:);");
pigServ.registerQuery("B = foreach A generate $0 as id;");
pigServ.store("B", "id.out");
}
}
Pig Demo
Pig Demo
Apache Mahout
Apache Mahout
Mahout + Hadoop
Opcional, mas se utilizado com o Hadoop o Mahout pode explorar
a escalabilidade do modelo MapReduce para processar os dados
Gerando recomendaes
Gerando recomendaes
Gerando recomendaes
Gerando recomendaes
Gerando recomendaes
Demo
Referncias
Livros
Hadoop: The Definitive Guide (Tom White, Yahoo Press)
Hadoop in Action (Chuck Lam, Manning Publications)
Web
http://wiki.apache.org/hadoop/
http://developer.yahoo.com/hadoop/tutorial/
http://pig.apache.org/
http://mahout.apache.org/
Material extra
Profa. Luciana Arantes (LIP6, Paris)
Daniel Cordeiro (IME/USP) danielc@ime.usp.br ERAD/SP 25 de julho de 2012 88 / 88