seminário hadoop

Download Seminário Hadoop

Post on 16-Apr-2017

1.956 views

Category:

Technology

0 download

Embed Size (px)

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)