Hadoop: HDFS, MapReduce e ZooKeeperra100582/mc715/apresenta.pdf · ..1 Agenda...2...

Preview:

Citation preview

. . . . . .

ApresentacaoDisciplina: MC715 (Laboratorio de Sistemas Distribuıdos)

Hadoop: HDFS, MapReduce e ZooKeeper

Celina d’ Avila Samoginhttp://www.students.ic.unicamp.br/∼ra100582

13 de agosto de 2010

Profa: Islene Calciolari Garcia

Celina Samogin () Hadoop 13 de agosto de 2010 1 / 36

. . . . . .

.. .1 Agenda

.. .2 Introducao

.. .3 Hadoop File System

.. .4 MapReduce

.. .5 Zookeeper

.. .6 Referencias Bibliograficas

Celina Samogin () Hadoop 13 de agosto de 2010 2 / 36

. . . . . .

Agenda

.. .1 Agenda

.. .2 Introducao

.. .3 Hadoop File System

.. .4 MapReduce

.. .5 Zookeeper

.. .6 Referencias Bibliograficas

Celina Samogin () Hadoop 13 de agosto de 2010 3 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?

I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?

I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?

I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?I megabyte - 106 - uma foto

I gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filme

I terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmes

I petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

Processar um volume relativamente grande de dados e possıvel, empoucas horas, com alguns dolares e com algumas maquinas:http://aws.amazon.com/

Isto tambem pode ser feito com o Hadoop, um framework paraprocessamento de dados em larga escala

Volume grande de dados ?I megabyte - 106 - uma fotoI gigabyte - 109 - um DVD armazena 4.7 GB de um filmeI terabyte - 1012 - 200 filmesI petabyte - 1015

I exabyte - 1018

I zettabyte - 1021 - um disco de 140 GB para cada pessoa no mundo

Celina Samogin () Hadoop 13 de agosto de 2010 4 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop foi criado por Doug Cutting.

E utilizado por grandes empresas: Facebook, Yahoo, Twitter,Microsoft e IBM e por laboratorios de Universidades: University ofMaryland, Cornell University, University of Edinburg, Unicamp [9]

commodity hardware, Google File System (GFS), cluster, TCP/IP,RPC, GNU/Linux, MapReduce

2002 - Mike Cafarella e Doug Cutting criaram o projeto Nutch,algoritmos de buscadores web

2003 - artigo sobre o Google File System

2004 - uma implementacao open source do GFS: Nutch DistributedFile System (NDFS) que originou o HDFS

2004 - Google propos o MapReduce

2006 - Google e Doug Cutting do Yahoo! formaram um sub-projeto apartir do Apache Lucene 2 que foi chamado Hadoop

Celina Samogin () Hadoop 13 de agosto de 2010 5 / 36

. . . . . .

Introducao

O Hadoop disponibiliza um armazenamento compartilhado(HDFS/Hadoop Distributed Filesystem) e um sistema de analise(MapReduce).

Facebook, Google, Twitter, Microsoft e IBM armazenam dados daordem de petabytes e utilizam o Hadoop.

O projeto Hadoop e hoje um projeto independente dentro dahierarquia de projetos da Apache Software Foundation.

Celina Samogin () Hadoop 13 de agosto de 2010 6 / 36

. . . . . .

Introducao

O Hadoop disponibiliza um armazenamento compartilhado(HDFS/Hadoop Distributed Filesystem) e um sistema de analise(MapReduce).

Facebook, Google, Twitter, Microsoft e IBM armazenam dados daordem de petabytes e utilizam o Hadoop.

O projeto Hadoop e hoje um projeto independente dentro dahierarquia de projetos da Apache Software Foundation.

Celina Samogin () Hadoop 13 de agosto de 2010 6 / 36

. . . . . .

Introducao

O Hadoop disponibiliza um armazenamento compartilhado(HDFS/Hadoop Distributed Filesystem) e um sistema de analise(MapReduce).

Facebook, Google, Twitter, Microsoft e IBM armazenam dados daordem de petabytes e utilizam o Hadoop.

O projeto Hadoop e hoje um projeto independente dentro dahierarquia de projetos da Apache Software Foundation.

Celina Samogin () Hadoop 13 de agosto de 2010 6 / 36

. . . . . .

Introducao

Os subprojetos atuais sao:

Common (Core) - componentes e interfaces para I/O

Avro - serializacao de dados, RPC, objetos persistentes, apenas paraHadoop

HDFS - filesystem do Hadoop, TCP/IP, executa nas maquinas de umcluster: NameNode, SecondaryNameNode, DataNodes

MapReduce - modelo de processamento de dados distribuıdos,executa nas maquinas de um cluster: jobtracker, tasktrackers

Zookeeper - servico de coordenacao, prove primitivas para locks,arvore de meta-dados, no lıder, nos seguidores

Celina Samogin () Hadoop 13 de agosto de 2010 7 / 36

. . . . . .

Introducao

Os subprojetos atuais sao:

Common (Core) - componentes e interfaces para I/O

Avro - serializacao de dados, RPC, objetos persistentes, apenas paraHadoop

HDFS - filesystem do Hadoop, TCP/IP, executa nas maquinas de umcluster: NameNode, SecondaryNameNode, DataNodes

MapReduce - modelo de processamento de dados distribuıdos,executa nas maquinas de um cluster: jobtracker, tasktrackers

Zookeeper - servico de coordenacao, prove primitivas para locks,arvore de meta-dados, no lıder, nos seguidores

Celina Samogin () Hadoop 13 de agosto de 2010 7 / 36

. . . . . .

Introducao

Os subprojetos atuais sao:

Common (Core) - componentes e interfaces para I/O

Avro - serializacao de dados, RPC, objetos persistentes, apenas paraHadoop

HDFS - filesystem do Hadoop, TCP/IP, executa nas maquinas de umcluster: NameNode, SecondaryNameNode, DataNodes

MapReduce - modelo de processamento de dados distribuıdos,executa nas maquinas de um cluster: jobtracker, tasktrackers

Zookeeper - servico de coordenacao, prove primitivas para locks,arvore de meta-dados, no lıder, nos seguidores

Celina Samogin () Hadoop 13 de agosto de 2010 7 / 36

. . . . . .

Introducao

Os subprojetos atuais sao:

Common (Core) - componentes e interfaces para I/O

Avro - serializacao de dados, RPC, objetos persistentes, apenas paraHadoop

HDFS - filesystem do Hadoop, TCP/IP, executa nas maquinas de umcluster: NameNode, SecondaryNameNode, DataNodes

MapReduce - modelo de processamento de dados distribuıdos,executa nas maquinas de um cluster: jobtracker, tasktrackers

Zookeeper - servico de coordenacao, prove primitivas para locks,arvore de meta-dados, no lıder, nos seguidores

Celina Samogin () Hadoop 13 de agosto de 2010 7 / 36

. . . . . .

Introducao

Os subprojetos atuais sao:

Common (Core) - componentes e interfaces para I/O

Avro - serializacao de dados, RPC, objetos persistentes, apenas paraHadoop

HDFS - filesystem do Hadoop, TCP/IP, executa nas maquinas de umcluster: NameNode, SecondaryNameNode, DataNodes

MapReduce - modelo de processamento de dados distribuıdos,executa nas maquinas de um cluster: jobtracker, tasktrackers

Zookeeper - servico de coordenacao, prove primitivas para locks,arvore de meta-dados, no lıder, nos seguidores

Celina Samogin () Hadoop 13 de agosto de 2010 7 / 36

. . . . . .

IntroducaoPig - processa grandes conjuntos de dados, linguagem Pig Latin,modo local e modo hadoopHBase - usado para aplicacoes de acesso aleatorio (read/write) agrandes conjuntos de dados e suporta computacoes em modo batchHive - usado para aplicacoes data warehouse sob o HDFS, umaSQL-like linguagem de consultaChukwa - sistema de coleta de informacoes para monitorar sistemasdistribuıdos

Figura: Projeto Hadoop [3]

Celina Samogin () Hadoop 13 de agosto de 2010 8 / 36

. . . . . .

Introducao

Por que nao usamos banco de dados ?

Em um banco de dados, uma atualizacao da arvore-B pode gerarmuitas operacoes de seeking.

seek time - processo de mover a cabeca do disco para um dado localno disco com o objetivo de ler ou de escrever dados

E mais rapido usar um algoritmo de ordenacao (sort/merge) para:

I analisar um grande volume de dados da ordem de petabytesI reconstruir toda a base de dados

Celina Samogin () Hadoop 13 de agosto de 2010 9 / 36

. . . . . .

Introducao

Por que nao usamos banco de dados ?

Em um banco de dados, uma atualizacao da arvore-B pode gerarmuitas operacoes de seeking.

seek time - processo de mover a cabeca do disco para um dado localno disco com o objetivo de ler ou de escrever dados

E mais rapido usar um algoritmo de ordenacao (sort/merge) para:

I analisar um grande volume de dados da ordem de petabytesI reconstruir toda a base de dados

Celina Samogin () Hadoop 13 de agosto de 2010 9 / 36

. . . . . .

Introducao

Por que nao usamos banco de dados ?

Em um banco de dados, uma atualizacao da arvore-B pode gerarmuitas operacoes de seeking.

seek time - processo de mover a cabeca do disco para um dado localno disco com o objetivo de ler ou de escrever dados

E mais rapido usar um algoritmo de ordenacao (sort/merge) para:

I analisar um grande volume de dados da ordem de petabytesI reconstruir toda a base de dados

Celina Samogin () Hadoop 13 de agosto de 2010 9 / 36

. . . . . .

Introducao

Por que nao usamos banco de dados ?

Em um banco de dados, uma atualizacao da arvore-B pode gerarmuitas operacoes de seeking.

seek time - processo de mover a cabeca do disco para um dado localno disco com o objetivo de ler ou de escrever dados

E mais rapido usar um algoritmo de ordenacao (sort/merge) para:I analisar um grande volume de dados da ordem de petabytes

I reconstruir toda a base de dados

Celina Samogin () Hadoop 13 de agosto de 2010 9 / 36

. . . . . .

Introducao

Por que nao usamos banco de dados ?

Em um banco de dados, uma atualizacao da arvore-B pode gerarmuitas operacoes de seeking.

seek time - processo de mover a cabeca do disco para um dado localno disco com o objetivo de ler ou de escrever dados

E mais rapido usar um algoritmo de ordenacao (sort/merge) para:I analisar um grande volume de dados da ordem de petabytesI reconstruir toda a base de dados

Celina Samogin () Hadoop 13 de agosto de 2010 9 / 36

. . . . . .

Introducao

Aplicacao para RDBMS Aplicacao paraHDFS/MapReduce

tamanho gigabytes petabytesacesso OLTP(interativo) e

batchbatch

atualizacao le e escreve muitas vezes escreve uma vez, lemuitas vezes

esquema estatico dinamicointegridade alta baixaescala nao linear linear

Fonte: [7]

Celina Samogin () Hadoop 13 de agosto de 2010 10 / 36

. . . . . .

Introducao

Vıdeo do YouTube - Google container data center tour

Celina Samogin () Hadoop 13 de agosto de 2010 11 / 36

. . . . . .

Agenda

.. .1 Agenda

.. .2 Introducao

.. .3 Hadoop File System

.. .4 MapReduce

.. .5 Zookeeper

.. .6 Referencias Bibliograficas

Celina Samogin () Hadoop 13 de agosto de 2010 12 / 36

. . . . . .

HDFS

Figura: Arquitetura de rede em dois nıveis para um cluster Hadoop [3]

Celina Samogin () Hadoop 13 de agosto de 2010 13 / 36

. . . . . .

HDFSUm cluster do HFS e composto por um unico NameNode, umservidor-mestre que gerencia o sistema de arquivos e controla o acesso aosarquivos de clientes. Ha uma serie de DataNodes, geralmente um por nodo cluster, que gerenciam o armazenamento anexado ao no em que saoexecutados. O NameNode executa operacoes no sistema de arquivos,como open, close, rename de arquivos e de diretorios.

Figura: Arquitetura do HFS [3]

Celina Samogin () Hadoop 13 de agosto de 2010 14 / 36

. . . . . .

HDFS

O NameNode e DataNode sao partes do software projetado pararodar em commodity hardware sob sistema operacional GNU/Linux.

HDFS e construıdo usando a linguagem Java.

Os protocolos do HDFS usam o protocolo TCP/IP. O cliente fala oprotocolo ClientProtocol com o NameNode atraves de uma porta. OsDataNodes falam o protocolo DataNodeProtocol com o NameNode.Esses protocolos executam uma Remote Procedure Call (RPC).

Celina Samogin () Hadoop 13 de agosto de 2010 15 / 36

. . . . . .

HDFSHFS disponibiliza espaco para sistema de arquivos e permite que os dadosdo usuario sejam armazenados em arquivos. Internamente, um arquivo edividido em um ou mais blocos e esses blocos sao armazenados em umconjunto de DataNodes. O tamanho default de cada bloco e 64MB.

Figura: Arquitetura do HFS - Datanodes e Blocos [3]

Celina Samogin () Hadoop 13 de agosto de 2010 16 / 36

. . . . . .

Agenda

.. .1 Agenda

.. .2 Introducao

.. .3 Hadoop File System

.. .4 MapReduce

.. .5 Zookeeper

.. .6 Referencias Bibliograficas

Celina Samogin () Hadoop 13 de agosto de 2010 17 / 36

. . . . . .

MapReduce

Os dados que MapReduce processa sao dados nao estruturados comotexto ou imagens. O MapReduce tenta colocar esses dados no noonde sao feitas as computacoes, desta forma, o acesso aos dados erapido, pois e local.

O MapReduce pode resolver problemas genericos cujos dados podemser divididos em matrizes de dados, para cada matriz a mesmacomputacao e necessaria e nao existe necessidade de comunicacaoentre as tarefas.

Problemas como empacotamento, linha de fabrica, otimizacao naosao resolvidos pelo modelo de computacao do MapReduce.

Celina Samogin () Hadoop 13 de agosto de 2010 18 / 36

. . . . . .

MapReduce

Os dados que MapReduce processa sao dados nao estruturados comotexto ou imagens. O MapReduce tenta colocar esses dados no noonde sao feitas as computacoes, desta forma, o acesso aos dados erapido, pois e local.

O MapReduce pode resolver problemas genericos cujos dados podemser divididos em matrizes de dados, para cada matriz a mesmacomputacao e necessaria e nao existe necessidade de comunicacaoentre as tarefas.

Problemas como empacotamento, linha de fabrica, otimizacao naosao resolvidos pelo modelo de computacao do MapReduce.

Celina Samogin () Hadoop 13 de agosto de 2010 18 / 36

. . . . . .

MapReduce

Os dados que MapReduce processa sao dados nao estruturados comotexto ou imagens. O MapReduce tenta colocar esses dados no noonde sao feitas as computacoes, desta forma, o acesso aos dados erapido, pois e local.

O MapReduce pode resolver problemas genericos cujos dados podemser divididos em matrizes de dados, para cada matriz a mesmacomputacao e necessaria e nao existe necessidade de comunicacaoentre as tarefas.

Problemas como empacotamento, linha de fabrica, otimizacao naosao resolvidos pelo modelo de computacao do MapReduce.

Celina Samogin () Hadoop 13 de agosto de 2010 18 / 36

. . . . . .

MapReduce e Lisp

Map: fazer algo para todos da lista e gerar uma nova lista

Fold: combinar os resultados da nova lista de alguma maneira

Exemplo map e fold em Lisp [6]

(map (lambda (x) (* x x)) ’(1 2 3 4 5))

− > ’(1 4 9 16 25)

(fold + 0 ’(1 2 3 4 5))

− > 15

(fold * 1 ’(1 2 3 4 5))

− > 120

Celina Samogin () Hadoop 13 de agosto de 2010 19 / 36

. . . . . .

MapReduce e Lisp

Map: fazer algo para todos da lista e gerar uma nova lista

Fold: combinar os resultados da nova lista de alguma maneira

Exemplo map e fold em Lisp [6]

(map (lambda (x) (* x x)) ’(1 2 3 4 5))

− > ’(1 4 9 16 25)

(fold + 0 ’(1 2 3 4 5))

− > 15

(fold * 1 ’(1 2 3 4 5))

− > 120

Celina Samogin () Hadoop 13 de agosto de 2010 19 / 36

. . . . . .

MapReduce e Lisp

Map: fazer algo para todos da lista e gerar uma nova lista

Fold: combinar os resultados da nova lista de alguma maneira

Exemplo map e fold em Lisp [6]

(map (lambda (x) (* x x)) ’(1 2 3 4 5))

− > ’(1 4 9 16 25)

(fold + 0 ’(1 2 3 4 5))

− > 15

(fold * 1 ’(1 2 3 4 5))

− > 120

Celina Samogin () Hadoop 13 de agosto de 2010 19 / 36

. . . . . .

MapReduce e Lisp

Map: fazer algo para todos da lista e gerar uma nova lista

Fold: combinar os resultados da nova lista de alguma maneira

Exemplo map e fold em Lisp [6]

(map (lambda (x) (* x x)) ’(1 2 3 4 5))

− > ’(1 4 9 16 25)

(fold + 0 ’(1 2 3 4 5))

− > 15

(fold * 1 ’(1 2 3 4 5))

− > 120

Celina Samogin () Hadoop 13 de agosto de 2010 19 / 36

. . . . . .

MapReduce e Lisp

Map: fazer algo para todos da lista e gerar uma nova lista

Fold: combinar os resultados da nova lista de alguma maneira

Exemplo map e fold em Lisp [6]

(map (lambda (x) (* x x)) ’(1 2 3 4 5))

− > ’(1 4 9 16 25)

(fold + 0 ’(1 2 3 4 5))

− > 15

(fold * 1 ’(1 2 3 4 5))

− > 120

Celina Samogin () Hadoop 13 de agosto de 2010 19 / 36

. . . . . .

MapReduce e Lisp

Map: fazer algo para todos da lista e gerar uma nova lista

Fold: combinar os resultados da nova lista de alguma maneira

Exemplo map e fold em Lisp [6]

(map (lambda (x) (* x x)) ’(1 2 3 4 5))

− > ’(1 4 9 16 25)

(fold + 0 ’(1 2 3 4 5))

− > 15

(fold * 1 ’(1 2 3 4 5))

− > 120

Celina Samogin () Hadoop 13 de agosto de 2010 19 / 36

. . . . . .

MapReduce e Lisp

Exemplo de soma dos quadrados de numeros [6]

(define (sum-of-squares v)

(fold + 0 (map (lambda (x) (* x x)) v)))

(sum-of-squares ’(1 2 3 4 5))

− > 55

Celina Samogin () Hadoop 13 de agosto de 2010 20 / 36

. . . . . .

MapReduce e Lisp

Exemplo de soma dos quadrados de numeros [6]

(define (sum-of-squares v)

(fold + 0 (map (lambda (x) (* x x)) v)))

(sum-of-squares ’(1 2 3 4 5))

− > 55

Celina Samogin () Hadoop 13 de agosto de 2010 20 / 36

. . . . . .

MapReduce e Lisp

Exemplo de soma dos quadrados de numeros [6]

(define (sum-of-squares v)

(fold + 0 (map (lambda (x) (* x x)) v)))

(sum-of-squares ’(1 2 3 4 5))

− > 55

Celina Samogin () Hadoop 13 de agosto de 2010 20 / 36

. . . . . .

MapReduce e Lisp

Exemplo de soma dos quadrados de numeros [6]

(define (sum-of-squares v)

(fold + 0 (map (lambda (x) (* x x)) v)))

(sum-of-squares ’(1 2 3 4 5))

− > 55

Celina Samogin () Hadoop 13 de agosto de 2010 20 / 36

. . . . . .

MapReduce

Problema generico:

iteracao sobre um numero grande de registros

Map extrai algo de cada registro (chave, valor)

rearranjo (shuffle e ordenacao de resultados intermediarios por (chave,valor)

Reduce agrega os resultados intermediarios

geracao da saıda

Celina Samogin () Hadoop 13 de agosto de 2010 21 / 36

. . . . . .

MapReduce

(input) < k1, v1 >→ map →< k2, v2 >→ combine→< k2, v2 >→ reduce →< k3, v3 > (output)

Exemplo com a shell do linux: contar palavras de um arquivo usandoos comandos: cat, tr, sort, uniq

Exemplo com MapReduce: contar palavras de um conjunto dearquivos usando o /bin/cat como map e o /usr/bin/wc como reduce

Programas podem ser escritos em varias linguagens como Java, Ruby,Python e C++ [4]

Celina Samogin () Hadoop 13 de agosto de 2010 22 / 36

. . . . . .

MapReduce

(input) < k1, v1 >→ map →< k2, v2 >→ combine→< k2, v2 >→ reduce →< k3, v3 > (output)

Exemplo com a shell do linux: contar palavras de um arquivo usandoos comandos: cat, tr, sort, uniq

Exemplo com MapReduce: contar palavras de um conjunto dearquivos usando o /bin/cat como map e o /usr/bin/wc como reduce

Programas podem ser escritos em varias linguagens como Java, Ruby,Python e C++ [4]

Celina Samogin () Hadoop 13 de agosto de 2010 22 / 36

. . . . . .

MapReduce

(input) < k1, v1 >→ map →< k2, v2 >→ combine→< k2, v2 >→ reduce →< k3, v3 > (output)

Exemplo com a shell do linux: contar palavras de um arquivo usandoos comandos: cat, tr, sort, uniq

Exemplo com MapReduce: contar palavras de um conjunto dearquivos usando o /bin/cat como map e o /usr/bin/wc como reduce

Programas podem ser escritos em varias linguagens como Java, Ruby,Python e C++ [4]

Celina Samogin () Hadoop 13 de agosto de 2010 22 / 36

. . . . . .

MapReduce

(input) < k1, v1 >→ map →< k2, v2 >→ combine→< k2, v2 >→ reduce →< k3, v3 > (output)

Exemplo com a shell do linux: contar palavras de um arquivo usandoos comandos: cat, tr, sort, uniq

Exemplo com MapReduce: contar palavras de um conjunto dearquivos usando o /bin/cat como map e o /usr/bin/wc como reduce

Programas podem ser escritos em varias linguagens como Java, Ruby,Python e C++ [4]

Celina Samogin () Hadoop 13 de agosto de 2010 22 / 36

. . . . . .

MapReduce

Figura: Uma execucao do MapReduce [8]

Celina Samogin () Hadoop 13 de agosto de 2010 23 / 36

. . . . . .

Agenda

.. .1 Agenda

.. .2 Introducao

.. .3 Hadoop File System

.. .4 MapReduce

.. .5 Zookeeper

.. .6 Referencias Bibliograficas

Celina Samogin () Hadoop 13 de agosto de 2010 24 / 36

. . . . . .

Zookeeper

Figura: Zookeeper [2]

Celina Samogin () Hadoop 13 de agosto de 2010 25 / 36

. . . . . .

Zookeeper

E um servico de coordenacao de processos de aplicacoes em sistemasdistribuıdos, criado pelo time do Yahoo!

Celina Samogin () Hadoop 13 de agosto de 2010 26 / 36

. . . . . .

Zookeeper

servidor prove os servicos do ZK, processam os pedidos em ordemFIFO

clientes usuarios do servico do ZK que estabelece uma sessao noservidor, cliente usa uma API para realizar solicitacoes

z-node no onde estao armazenados dados (meta-dados), no maximo1MB por default, organizados em uma hierarquia (arvore dedados ou um filesystem), todos os nos armazenam dados,nem todos os nos tem filhos

servicos uma abstracao de um conjunto de z-nodes organizadossegundo um hierarchical name space, notificar clientes sobrealteracoes do hierarchical name space atraves de gatilhos(triggers)

Celina Samogin () Hadoop 13 de agosto de 2010 27 / 36

. . . . . .

Zookeeper

servidor prove os servicos do ZK, processam os pedidos em ordemFIFO

clientes usuarios do servico do ZK que estabelece uma sessao noservidor, cliente usa uma API para realizar solicitacoes

z-node no onde estao armazenados dados (meta-dados), no maximo1MB por default, organizados em uma hierarquia (arvore dedados ou um filesystem), todos os nos armazenam dados,nem todos os nos tem filhos

servicos uma abstracao de um conjunto de z-nodes organizadossegundo um hierarchical name space, notificar clientes sobrealteracoes do hierarchical name space atraves de gatilhos(triggers)

Celina Samogin () Hadoop 13 de agosto de 2010 27 / 36

. . . . . .

Zookeeper

servidor prove os servicos do ZK, processam os pedidos em ordemFIFO

clientes usuarios do servico do ZK que estabelece uma sessao noservidor, cliente usa uma API para realizar solicitacoes

z-node no onde estao armazenados dados (meta-dados), no maximo1MB por default, organizados em uma hierarquia (arvore dedados ou um filesystem), todos os nos armazenam dados,nem todos os nos tem filhos

servicos uma abstracao de um conjunto de z-nodes organizadossegundo um hierarchical name space, notificar clientes sobrealteracoes do hierarchical name space atraves de gatilhos(triggers)

Celina Samogin () Hadoop 13 de agosto de 2010 27 / 36

. . . . . .

Zookeeper

servidor prove os servicos do ZK, processam os pedidos em ordemFIFO

clientes usuarios do servico do ZK que estabelece uma sessao noservidor, cliente usa uma API para realizar solicitacoes

z-node no onde estao armazenados dados (meta-dados), no maximo1MB por default, organizados em uma hierarquia (arvore dedados ou um filesystem), todos os nos armazenam dados,nem todos os nos tem filhos

servicos uma abstracao de um conjunto de z-nodes organizadossegundo um hierarchical name space, notificar clientes sobrealteracoes do hierarchical name space atraves de gatilhos(triggers)

Celina Samogin () Hadoop 13 de agosto de 2010 27 / 36

. . . . . .

Zookeeper

Figura: Zookeeper: hierarchical name space e clientes [5]

Celina Samogin () Hadoop 13 de agosto de 2010 28 / 36

. . . . . .

Zookeeper

Figura: Zookeeper: servidor (lıder e seguidores) e clientes [1]

Celina Samogin () Hadoop 13 de agosto de 2010 29 / 36

. . . . . .

Zookeeper

Operacoes da API para o cliente [1] [3]:

create(path, data, flags)

delete(path, version)

exists(path, watch)

getdata(path, watch)

setData(path, data, version)

getChildren(path, watch)

sync(path)

getACL(path)

setACL(path, ACL)

Celina Samogin () Hadoop 13 de agosto de 2010 30 / 36

. . . . . .

Zookeeper

Quem usa [10]:

Yahoo!

Rackspace - empresa de servicos de e-mail, de computacao em nuvem

HBASE - base de dados do Hadoop, equivalente ao Bigtable daGoogle

Eclipse - framework open source da IBM

Celina Samogin () Hadoop 13 de agosto de 2010 31 / 36

. . . . . .

Agenda

.. .1 Agenda

.. .2 Introducao

.. .3 Hadoop File System

.. .4 MapReduce

.. .5 Zookeeper

.. .6 Referencias Bibliograficas

Celina Samogin () Hadoop 13 de agosto de 2010 32 / 36

. . . . . .

Referencias Bibliograficas I

Hunt, P. Konar, M. Junqueira, F. P. Reed, B.Zookeeper: Wait-free coordination for internet-scale systems.In USENIX ATC ’10: Proceedings of the Usenix Annual TechnicalConference, Berkeley, CA, USA, 2010. USENIX Association.

Moynihan, D.When i was 7, i wanted to be a zookeeper.URL=http://danmoynihan.blogspot.com/2009/01/when-i-was-7-i-wanted-to-be-zookeeper.html. Acessado em 08 de agosto de2010.

Apache Software Foundation.Hdfs architecture.URL=http://hadoop.apache.org/common/docs/current/hdfs design.html.Acessado em 08 de maio de 2010.

Celina Samogin () Hadoop 13 de agosto de 2010 33 / 36

. . . . . .

Referencias Bibliograficas II

Noll, M. G.Writing an hadoop mapreduce program in python.URL=http://www.michael-noll.com/wiki/Writing An Hadoop MapReduce Program In Python.Acessado em 08 de agosto de 2010.

Grigorik, I.Distributed coordination with zookeeper.URL=http://www.igvita.com/2010/04/30/distributed-coordination-with-zookeeper. Acessado em 08 de agosto de2010.

Celina Samogin () Hadoop 13 de agosto de 2010 34 / 36

. . . . . .

Referencias Bibliograficas III

Lin, J.lectures of 2008 cloud computing course - from lisp to mapreduce andgfs.URL=http://www.umiacs.umd.edu/ jimmylin/cloud-2008-Spring/Session2.ppt. Acessado em 08 de agosto de2010.

White, T.Hadoop: The Definive Guide, chapter 1, 2, 3, pages 1–74.O’Reilly, Sebastopol, CA, USA, 2009.

Google Code University.Introduction to parallel programming and mapreduce.URL=http://code.google.com/intl/pt-BR/edu/parallel/mapreduce-tutorial.html. Acessado em 08 de agosto de2010.

Celina Samogin () Hadoop 13 de agosto de 2010 35 / 36

. . . . . .

Referencias Bibliograficas IV

Hadoop Wiki.Hadoop wiki - poweredby.URL=http://wiki.apache.org/hadoop/PoweredBy. Acessado em 08 demaio de 2010.

Zookeeper Wiki.Zookeeper wiki - poweredby.URL=ttp://wiki.apache.org/hadoop/ZooKeeper/PoweredBy.Acessado em 08 de agosto de 2010.

Celina Samogin () Hadoop 13 de agosto de 2010 36 / 36

Recommended