seminário hadoop
TRANSCRIPT
Hadoop
Ivanilton PolatoUTFPR Cmpus Campo MouroDoutorado em Cincia da ComputaoDINTER IME/USP-UTFPRJaneiro/2012
Introduo ao Apache Hadoop
Motivaes atuais!
Grandes quantidades (massivas) de dados
No cabem em uma mquina!
Demoram MUITO para processar serialmente!
Mquinas individuais falham!
Mais mquinas juntas... probabilidade maior!
O nmero de ns em um cluster no constante!
Computao nas nuvens
Disponibilidade de computao e dados
Escalabilidade de aplicaes
Computao sob demanda
Histrico
Fonte: Evert Lammerts (SARA.nl)
* http://nutch.apache.org/** http://labs.google.com/papers/mapreduce.html http://labs.google.com/papers/gfs.html
Histrico
Fev/03 Primeira biblioteca Map/Reduce na Google
Out/03 Artigo sobre GFS
Dez/04 Artigo sobre Map Reduce
Dez/05 Doug Cutting implementa MR e DFS no Nutch
Fev/06 Hadoop se torna um projeto oficial da Apache, Doug Cutting contratado pela Yahoo!, que adota o Hadoop
Abr/07 Yahoo! roda Hadoop em um cluster de 1000 ns
Jan/08 Hadoop se transforma em um projeto principal da Apache
Dez/11 Apache disponibiliza verso 1.0.0
O que Apache Hadoop?
Framework para computao distribuda
Usado em clusters/grades computacionais
Milhares de ns
Hardware comum (Commodity cluster computing)
Petabytes de dados
Open Source (licena Apache)
Java
Inspirado originalmente pelo GFS e MapReduce da Google
Suposies do Projeto
Os dados que sero processados no cabem em um n
Cada n hardware comum
Falhas acontecem
Ideias:
Sistema de arquivos distribudoReplicao internaRecuperao de falhas automtica
Suposies do Projeto
Mover dados caro
Mover computao barato
Computao distribuda fcil
Ideias:
Mover a computao para os dadosEscrever programas que so fceis de se distribuir
Composio do Apache Hadoop
Ncleo composto por:
Hadoop Common
HDFS: distribui os dados
MapReduce: distribui as aplicaes
Projetos relacionados:
HBase: BD distribudo e escalvel
Hive e Pig: infraestrutura de DW
Na web: http://hadoop.apache.org/
Possibilidades de uso
Quem usa?
Lista completa: http://wiki.apache.org/hadoop/PoweredBy
HDFS
Hadoop Distributed File System
HDFS: Hadoop Distributed File System
Sistema de arquivos distribudo
Grande ordem de 10k ns
Milhes de arquivos
Projetado para hardware de baixo custo
Redundncia por replicao
Tolerncia a falhas e recuperao
Otimizado para processamento em lote
Localizao dos dados exposta
Grande largura de banda associada
HDFS: Hadoop Distributed File System
Coerncia dos dados
Modelo write-once-ready-many
Arquivos existentes sofrem apenas operaes de append
Arquivos quebrados em pedaos (blocos)
Variam de 64mb (padro) a 256mb
Blocos distribudos pelos ns (um arquivo dividido em N blocos e armazenado em M ns)
Blocos so replicados e as replicaes distribudas
MapReduce
A ideia
A ideia do paradigma de programao Map e Reduce no nova
Provavelmente 40+ anos!
No Hadoop a parte do framework responsvel pelo processamento distribudo (paralelo) de grandes conjuntos de dados.
Prov um modelo de programao
Usa padres j conhecidos:
cat | grep | sort | unique > fileinput | map | shuffle | reduce > output
A natureza do MapReduce
Map em programao funcional
map({1,2,3,4}, (x2)) {2,4,6,8}
Todos os elementos so processados por um mtodo e os elementos no afetam uns aos outros
Reduce em programao funcional
reduce({1,2,3,4}, (x)) {24}
Todos elementos na lista so processados juntos
Tanto em Map quanto em Reduce:
A entrada fixa (imutvel), e a sada uma nova lista
Continuando...
O paradigma MapReduce adequado para trabalhar com grandes quantidades de dados
Realiza computao sobre os dados (pouca movimentao de dados)
Utiliza os blocos armazenados no DFS, logo no necessita diviso dos dados
Lida com o paralelismo
Um Map por bloco, se possvel
MapReduce no Hadoop
A funo Map atua sobre um conjunto de entrada com chaves e valores, produzindo uma lista de chaves e valores
A funo Reduce atua sobre os valores intermedirios produzidos pelo Map para, normalmente, agrupar os valores e produzir a sada
Input
Output
map
lista()
reduce
lista()
Exemplos: Word Count
L arquivos texto e conta a frequncia das palavras
Entrada: arquivos texto
Sada: arquivo textoCada linha: palavra, separador (tab), quantidade
Map: gera pares de (palavra, quantidade)
Reduce: para cada palavra, soma as quantidades
Map e Reduce (Pseudo-cdigo)
map(String key, String value):// key: document name// value: document contentsfor each word w in value:EmitIntermediate(w, 1);
reduce(String key, Iterator values):// key: a word// values: a list of countsint result = 0;for each v in values:result += ParseInt(v);Emit(AsString(result));
Outros exemplos: Grep
Procura nos arquivos de entrada por um dado padro
Map: emite uma linha se um padro encontrado
Reduce: Copia os resultados para a sada
Outros exemplos: ndice invertido
Gerar o ndice invertido das palavras de um conjunto de arquivos dado
Map: faz a anlise dos documentos e gera pares de (palavra, docId)
Reduce: recebe todos os pares de uma palavra, organiza os valores docId, e gera um par (palavra, lista(docId))
Modelo de execuo do MapReduce
Exemplo de execuo
(Single machine)
Funcionamento
em um cluster
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean e Sanjay Ghemawat ACM, 2008
HDFS: NameNode & DataNodes
NameNode (NN)
Gerencia o namespace do sistema de arquivos
Mapeia nomes de arquivos para blocos
Mapeia blocos para DataNodes
Gerenciamento de replicao
DataNode (DN)
Servidor de blocos que armazena
Dados no sistema de arquivos local
Metadados dos blocos (hash)
Disponibiliza metadados para clientes
Fonte: Evert Lammerts (SARA.nl)
MapReduce: JobTracker & TaskTrackers
JobTracker
Controla os metadados
Status de um job
Status de Tasks nos TTs
Decide o escalonamento
TaskTrackers
Solicita trabalho do JT
Busca cdigo para executar do DFS
Aplica configuraes especficas dos jobs
Comunicam-se com o JT nas tasks
Enviar sadas, atualizaes de tasks, matar tasks, ...
Fonte: Evert Lammerts (SARA.nl)
Possibilidades
Servios web
Gerenciamento de servios web usando Hadoop:
XiLu Zhu; Bai Wang; , "Web service management based on Hadoop," Service Systems and Service Management (ICSSSM), 2011 8th International Conference on , vol., no., pp.1-6, 25-27 June 2011doi: 10.1109/ICSSSM.2011.5959326
Saiba mais:
Livros
Hadoop The Definitive Guide Tom White 2 Ed.
Hadoop in ActionChuck Lam 1 Ed.
Web: http://wiki.apache.org/hadoop/
Ivanilton Polato
By Ivanilton Polato. These slides are licensed under theAtribuio-Uso no-comercial-Compartilhamento pela mesma licena 3.0 Brasil Licence (CC BY-NC-SA 3.0)