. . . . . .
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
Top Related