SlideShare uma empresa Scribd logo
Filesystem Distribuído com
Hadoop!!!
Alessandro Binhara
Começando com Hadoop!!!
•
•
•
•

Grandes volumes de dados (Tera Bytes)
Processamento dos dados
Tolerância a falha
Distribuição do serviço
Por que ???
• Requisitos
–
–
–
–

500M+ usuário únicos por mês
Bilhões de eventos interessantes por dia
Necessidade de scalabilidade massiva
PB’s de storage, milhares de arquivos, 1000’s de nós

• Necessidade de ter baixo custo
– Uso de hardware comum
– Compartilhar recursos com vários projetos
– Fornecer escala quando necessário

• Precisa de infraestrutura confiável
– Deve ser capaz de lidar com falhas - hardware, software, networking
• A falha é esperada, e não uma exceção

– Transparente para as aplicações
• muito caro para construir confiabilidade em cada aplicação

• A infra-estrutura do Hadoop prove essas capacidade.
Começando com Hadoop!!!
• Histórico
–
–
–
–

Em 2004: Google publica um artigo sobre MapReduce
2005: Doug Cutting integra MapReduce no Hadoop
2006: Doug Cutting contratado pelo Yahoo
Yahoo! tornou-se o promeiro contribuidor em 2006
• Escalou de 20 node para 4000 node clusters em 2010

– 2008: Cloudera é Fundada (www.cloudera.com)

• Características
– Escrito em Java, OpenSource
– Roda em hardware comum
– Linux, Mac OS/X, Windows, and Solaris
O que é o Hadoop
• O Apache Hadoop é um projeto desenvolvimento
como open-source software para escalavel ,
confiável e processamento distribuído. Inclui:
– MapReduce e Sistema de arquivos distribuído
framework para for large commodity clusters
– Master/Slave
– JobTracker organiza todas as tarefas e coordena o
fluxo de dados entre os TaskTrackers
– TaskTracker manipula todos os worker no node
– Worker Task executa as operações de map ou reduce
– Integra-se com HDFS com os dados localmente
Características do Hadoop
• Um sistema escalável e confiável para
armazenamento compartilhado e análises.
• Ele automaticamente trata da replicação de
dados e da falhas em cada nó.
• Ele faz o trabalho duro - desenvolvedor pode
se concentrar em processamento da lógica de
dados
• Permite que os aplicativos usem petabytes de
dados em paralelo
Ecosistema Hadoop
• Hadoop Core
Hadoop Core

– Distributed File System
Distributed File System
MapReduce Framework
– MapReduce Framework

Pig Yahoo!)
• Pig (criado pelo(criado pelo Yahoo!)Runtime
Parallel Programming Language e
– Parallel Programming Language e Runtime
Hbase (criado pelo Powerset)
• Hbase (criadoTable storage for semi-structured data
pelo Powerset)
– Table storage for semi-structured(criado pelo
Zookeaper data
Yahoo!)
• Zookeaper (criado pelo Yahoo!)
Coordinating distributed systems
– Coordinating distributed systems
Hive (criado pelo Facebook)
• Hive (criado pelo Facebook) and metastore
SQL-like query language
– SQL-like query language and metastore
Quem usa o Hadoop ?
•
•
•
•
•

Buscapé / Ebehavior
Amazon/A9
Facebook
Google
IBM

•
•
•
•
•
•

Joost
Last.fm
New York Times
PowerSet
Veoh
Yahoo!
M45(open cirrus cluster )
• Colaboração com grandes universidades de
pesquisa(via open cirrus)
–
–
–
–

Carnegie Mellon University
The University of California at Berkeley
Cornell University
The University of Massachusetts at Amherst joined

• Seed Facility:

Datacenter na caixa (DiB)

– 500 nodes, 4000 cores, 3TB RAM, 1.5PB disk
– Conexão de alta velocidade com a internet
– Localizado no Yahoo no campu Coorporativo

• Roda Hadoop
• Tem sido usado no últimos 2 anos
Hadoop no Facebook
• Cluster em produção
–
–
–
–
–

4800 cores, 600 máquina, 16GB por máquina – Abril/2009
8000 cores, 1000 máquinas, 32 GB por máquina – julho/2009
4 SATA discos de 1 TB por máquina
2 níveis de rede hierarquica, 40 máquinas por rack
Total do tamanho do cluster 2 PB, projetado para 12 PB no Q3 2009

• Cluster de Teste
• 800 cores, 16GB cada
Yahoo Hadoop Cluster
Uso de Hardware Comum

Tipicamente em 2 níveis
– Nós são PCs comuns
– 30-40 nodes/rack
– Rack em Uplink de 3-4 gigabit
– Rack-interno de 1 gigabit
HDFS
• Inspirado em GFS
• Projetado para trabalhar com arquivos muito
grandes
• Executado em hardware commodity
• Streaming de acesso a dados
• Replicação e localidade
HDFS
• Projetado para escalar a petabytes de armazenamento, e
correr em cima dos sistemas de arquivos do sistema
operacional subjacente.
• “NameNode” - Master

– Gerencia o sistema de arquivos namespace
Conhece todos os blocos de localização
– lida com a replicação, exclusão, criação

• “DataNode” - Slave (workers)

– Manter os blocos de dados
– Relatório de volta para namenode suas listas de blocos
periodicamente
– lida com a recuperação de dados
HDFS - Duplicação
• Dados de entrada é
copiado para HDFS é
dividido em blocos
• Cada blocos de dados é
replicado para várias
máquinas
HDFS – Hadoop FileSystem
• Sistema de Arquivos Distribuído para grande
Volumes
– 10K nodes, 100 milhões de arquivos, 10 PB

• Hardware Comum (comodite)
– Os arquivos são replicados esperando falha de
hardware
– Detecção de falhas e recuperação
• Otimizado para Batch Processing
– Os dados ficam expostos, a computação pode
ser movida onde os dados estiverem
• Roda em diversos OS (win, linux, mac)
HDFS - MapReduce Data Flow
Filesystem distribuído com hadoop!!!
Modos de Operação
• Standalone
• Pseudo-distributed
• Fully-distributed
O que é Map Reduce
• MapReduce é um modelo de programação e
implementação associados para o
processamento e geração de grandes conjuntos
de dados (Jeffrey Dean e Sanjay Ghemawat, 2004)
– A ideia tem mais de 40 anos
– Baseado em um modelo de programação funcional
(como Lisp, Ml, etc)
– Processamento de dados base em batch
– A abstração limpa para programadores
– Paralelização automática e distribuição
– Tolerância a falhas
MapReduce x Hadoop
MapReduce

Hadoop

Org

Google

Yahoo/Apache

Impl

C++

Java

Distributed File
Sys

GFS

HDFS

Data Base

Bigtable

HBase

Distributed
lock mgr

Chubby

ZooKeeper
MapReduce – Função Map
• Input:
– Registros de alguma fonte de dados (por exemplo,
linhas de arquivos, linhas de um banco de dados,
...) estão associados no par (chave, valor)

• Output:
– Um ou mais valores intermediários no formato
(chave, valor)
• Exemplo: (palavra, numero_de_ocorrencias)
MapReduce – Função Map
Exemplo – Função Map
map (k, v):
if (isPrime(v)) then emit (k, v)

(“foo”, 7) (“foo”, 7)
(“test, 10) (nothing)
MapReduce – Função Reduce
Depois que a fase de mapeamento terminar, todos
os valores intermediários vão para uma chave de
saída, estes são combinadas em uma lista
• Input
– Valores Intermediários :
– Example: (“A”, [42, 100, 312])

• Output
– Normalmente, apenas um valor final por chave
– Exemplo (“a”, 454)
MapReduce – Função Reduce
Exemplo – Função Reduce
reduce (k, vals):
sum = 0
foreach int v in vals:
sum += v
emit (k, sum)
(“A”, [42, 100, 312]) (“A”, 454)
(“B”, [12, 6, -2]) (“B”, 16)
MapReduce - Terminologia
• Job: unidade de trabalho que o cliente quer ser
realizados
– Dados de entrada + programa MapReduce +
configuração da informação

• Task: parte do trabalho
– Mapa e reduzir tarefas

• Jobtracker: nó que coordena todos os trabalhos
na sistema de agendamento de tarefas para rodar
em tasktrackers.
• TaskTracker: nós que executar tarefas e enviar o
progresso ao jobtracker
Fluxo do Trabalho
Exemplo Real
map (String key, String value):
// key: document name
// value: document contents
for each word w in value:
EmitIntermediate(w, "1");
Reduce
reduce(String key, Iterator values):
// key: a palavra
// values: a lista de valores
int result = 0;
for each v in values:
result += ParseInt(v);
Emit(AsString(result));
Map/Reduce Cluster
Input
files

M map
tasks

Intermediate
files

R reduce
tasks

split 0
split 1
split 2
split 3
split 4
Vários Map ou Reduce
podem ser executados em
um único computador

Output
files

Output 0

Output 1
Cada arquivo
intermediário é dividido em
partições R, pela função de
particionamento

Cada tarefa reduce
corresponde uma
partição
Execução
Map Reduce
Exemplo Java - Mapper
Exemplo Java – Reduce
JobJava
Passo a Passo
• Os passos básicos para a execução de um
trabalho Hadoop são:
– Compile o seu trabalho em um arquivo JAR
– Copiar dados de entrada no HDFS
– Execute hadoop passando para o AJR
os parametros relevantes
– Monitorar tarefas via interface Web (opcional)
– Examinar a saída quando o trabalho estiver
completo
Exemplo
hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100
hadoop fs -mkdir input
hadoop fs -put /etc/hadoop-0.20/conf/*.xml input
hadoop-0.20 fs -ls input
hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar
grep input output 'dfs[a-z.]+'
hadoop-0.20 fs -mkdir inputwords
hadoop-0.20 fs -put /etc/hadoop-0.20/conf/*.xml inputwords
hadoop-0.20 fs -ls inputwords
hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar
grep inputwords outputwords 'dfs[a-z.]+'
Obrigado
•
•
•
•

Alessandro de Oliveira Binhara
binhara@gmail.com
binahra@azuris.com.br
www.facebook.com/azuriscompany

Mais conteúdo relacionado

PDF
Tecnologias para mineração de dados nas nuvens
PDF
Arquitetura do Framework Apache Hadoop 2.6
PDF
Hadoop - Primeiros passos
PDF
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
PDF
Arquiteturas, Tecnologias e Desafios para Análise de BigData
PDF
Hadoop - TDC 2012
Tecnologias para mineração de dados nas nuvens
Arquitetura do Framework Apache Hadoop 2.6
Hadoop - Primeiros passos
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Hadoop - TDC 2012

Mais procurados (20)

ODP
Rodando um Recomendador no Hadoop usando Mahout
PDF
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
PDF
AWS Redshift Primer
PDF
TDC 2014 - Hadoop Hands ON
ODP
Hbase trabalho final
PPTX
Machine learning com Apache Spark
PDF
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
PDF
Bancos de dados analíticos open source
PPTX
Sistemas distribuidos - Hadoop
PPTX
PDF
Amazon emr cluster hadoop pronto para usar na nuvem aws
PDF
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
PPTX
BIG DATA na UFSM
PDF
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
PDF
Pré processamento de grandes dados com Apache Spark
PDF
Bigdata - compreendendo Hadoop e seu ecossistema.
PDF
Queries em Big Data: Bancos de dados em GPU
PPTX
Cloud Server Embratel
PPTX
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Rodando um Recomendador no Hadoop usando Mahout
TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico
AWS Redshift Primer
TDC 2014 - Hadoop Hands ON
Hbase trabalho final
Machine learning com Apache Spark
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Bancos de dados analíticos open source
Sistemas distribuidos - Hadoop
Amazon emr cluster hadoop pronto para usar na nuvem aws
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
BIG DATA na UFSM
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Pré processamento de grandes dados com Apache Spark
Bigdata - compreendendo Hadoop e seu ecossistema.
Queries em Big Data: Bancos de dados em GPU
Cloud Server Embratel
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Anúncio

Semelhante a Filesystem distribuído com hadoop!!! (20)

ODP
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
PDF
Big Data Open Source com Hadoop
ODP
Seminário Hadoop
PDF
Interoperabilidade com BigData Hadoop para Windows Azure
PPTX
Big data e ecossistema hadoop
PPTX
Hadoop - Mãos à massa! Qcon2014
PDF
Big Data - O que é o hadoop, map reduce, hdfs e hive
PDF
Treinamento hadoop - dia3
PDF
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
PDF
BigData e internte das coisas aplicada a engenharia
PDF
Web aula 46 - Conhecendo o ecossistema BIG DATA
PDF
BIG DATA & IoT: Tecnologias e  Aplicações
PDF
Data Lakes com Hadoop e Spark: Agile Analytics na prática
PDF
Qcon Rio 2015 - Data Lakes Workshop
PPTX
Hadoop - primeiros passos
PDF
Indústria 4.0: como a IoT e Big Data mudarão a forma como lidamos com a tecno...
ODP
Bigdata na pratica: Resolvendo problemas de performance com hadoop
PPTX
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
PDF
Modelos de computação distribuída no Hadoop
PPTX
Palestra: Big Data Open Source com Hadoop - FLISOL 2014 - Curitiba
Big Data Open Source com Hadoop
Seminário Hadoop
Interoperabilidade com BigData Hadoop para Windows Azure
Big data e ecossistema hadoop
Hadoop - Mãos à massa! Qcon2014
Big Data - O que é o hadoop, map reduce, hdfs e hive
Treinamento hadoop - dia3
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
BigData e internte das coisas aplicada a engenharia
Web aula 46 - Conhecendo o ecossistema BIG DATA
BIG DATA & IoT: Tecnologias e  Aplicações
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Qcon Rio 2015 - Data Lakes Workshop
Hadoop - primeiros passos
Indústria 4.0: como a IoT e Big Data mudarão a forma como lidamos com a tecno...
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Apresentação em Aplicações Distribuídas – Hadoop MapReduce
Modelos de computação distribuída no Hadoop
Anúncio

Mais de Alessandro Binhara (20)

PDF
ApresentacaoEngehariaBrinquedojulho-2024-v1.pdf
PPTX
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
PDF
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
PDF
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
PPT
2019 latinoware - O mundo novo da realidade virtual
PDF
Realidade Virtual e a Ciência de Dados -latinoware
PPT
Realidade Virtual e a Ciência de Dados
PPT
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
PPTX
Curso de Férias - Robótica
PDF
Introduçãoo aws, escalando uma aplicação Web
PDF
Bigadata casese opotunidades
PDF
Xamarin plataform
PDF
Desenvolvimento de Games para Mobile.
PDF
Games imersivos
PPTX
Abertura - interopmix2014
PDF
Curso C# em Mono - Orientação a Objeto Basico
PDF
Treinamento csharp mono
PPTX
Int305 projeto mono-final
PDF
Apresentação Final a FINEP Projeto MonoBasic
PDF
App CrossMobile com C# para Android, Iphone e WindowsPhone
ApresentacaoEngehariaBrinquedojulho-2024-v1.pdf
Uma breve introdução ao Big Data e Inteligência Artificial.pptx
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Latinoware 2019 - DEsenvolvimento mobile em Nivel jedi
2019 latinoware - O mundo novo da realidade virtual
Realidade Virtual e a Ciência de Dados -latinoware
Realidade Virtual e a Ciência de Dados
A IMPORTÂNCIA DA PARTICIPAÇÃO NA GESTÃO DE PROJETOS TECNOLÓGICOS INOVADORES:...
Curso de Férias - Robótica
Introduçãoo aws, escalando uma aplicação Web
Bigadata casese opotunidades
Xamarin plataform
Desenvolvimento de Games para Mobile.
Games imersivos
Abertura - interopmix2014
Curso C# em Mono - Orientação a Objeto Basico
Treinamento csharp mono
Int305 projeto mono-final
Apresentação Final a FINEP Projeto MonoBasic
App CrossMobile com C# para Android, Iphone e WindowsPhone

Último (19)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
COBITxITIL-Entenda as diferença em uso governança TI
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula04-Academia Heri- Tecnologia Geral 2025
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula 18 - Manipulacao De Arquivos python
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Processos na gestão de transportes, TM100 Col18
Apple Pippin Uma breve introdução. - David Glotz
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss

Filesystem distribuído com hadoop!!!

  • 2. Começando com Hadoop!!! • • • • Grandes volumes de dados (Tera Bytes) Processamento dos dados Tolerância a falha Distribuição do serviço
  • 3. Por que ??? • Requisitos – – – – 500M+ usuário únicos por mês Bilhões de eventos interessantes por dia Necessidade de scalabilidade massiva PB’s de storage, milhares de arquivos, 1000’s de nós • Necessidade de ter baixo custo – Uso de hardware comum – Compartilhar recursos com vários projetos – Fornecer escala quando necessário • Precisa de infraestrutura confiável – Deve ser capaz de lidar com falhas - hardware, software, networking • A falha é esperada, e não uma exceção – Transparente para as aplicações • muito caro para construir confiabilidade em cada aplicação • A infra-estrutura do Hadoop prove essas capacidade.
  • 4. Começando com Hadoop!!! • Histórico – – – – Em 2004: Google publica um artigo sobre MapReduce 2005: Doug Cutting integra MapReduce no Hadoop 2006: Doug Cutting contratado pelo Yahoo Yahoo! tornou-se o promeiro contribuidor em 2006 • Escalou de 20 node para 4000 node clusters em 2010 – 2008: Cloudera é Fundada (www.cloudera.com) • Características – Escrito em Java, OpenSource – Roda em hardware comum – Linux, Mac OS/X, Windows, and Solaris
  • 5. O que é o Hadoop • O Apache Hadoop é um projeto desenvolvimento como open-source software para escalavel , confiável e processamento distribuído. Inclui: – MapReduce e Sistema de arquivos distribuído framework para for large commodity clusters – Master/Slave – JobTracker organiza todas as tarefas e coordena o fluxo de dados entre os TaskTrackers – TaskTracker manipula todos os worker no node – Worker Task executa as operações de map ou reduce – Integra-se com HDFS com os dados localmente
  • 6. Características do Hadoop • Um sistema escalável e confiável para armazenamento compartilhado e análises. • Ele automaticamente trata da replicação de dados e da falhas em cada nó. • Ele faz o trabalho duro - desenvolvedor pode se concentrar em processamento da lógica de dados • Permite que os aplicativos usem petabytes de dados em paralelo
  • 7. Ecosistema Hadoop • Hadoop Core Hadoop Core – Distributed File System Distributed File System MapReduce Framework – MapReduce Framework Pig Yahoo!) • Pig (criado pelo(criado pelo Yahoo!)Runtime Parallel Programming Language e – Parallel Programming Language e Runtime Hbase (criado pelo Powerset) • Hbase (criadoTable storage for semi-structured data pelo Powerset) – Table storage for semi-structured(criado pelo Zookeaper data Yahoo!) • Zookeaper (criado pelo Yahoo!) Coordinating distributed systems – Coordinating distributed systems Hive (criado pelo Facebook) • Hive (criado pelo Facebook) and metastore SQL-like query language – SQL-like query language and metastore
  • 8. Quem usa o Hadoop ? • • • • • Buscapé / Ebehavior Amazon/A9 Facebook Google IBM • • • • • • Joost Last.fm New York Times PowerSet Veoh Yahoo!
  • 9. M45(open cirrus cluster ) • Colaboração com grandes universidades de pesquisa(via open cirrus) – – – – Carnegie Mellon University The University of California at Berkeley Cornell University The University of Massachusetts at Amherst joined • Seed Facility: Datacenter na caixa (DiB) – 500 nodes, 4000 cores, 3TB RAM, 1.5PB disk – Conexão de alta velocidade com a internet – Localizado no Yahoo no campu Coorporativo • Roda Hadoop • Tem sido usado no últimos 2 anos
  • 10. Hadoop no Facebook • Cluster em produção – – – – – 4800 cores, 600 máquina, 16GB por máquina – Abril/2009 8000 cores, 1000 máquinas, 32 GB por máquina – julho/2009 4 SATA discos de 1 TB por máquina 2 níveis de rede hierarquica, 40 máquinas por rack Total do tamanho do cluster 2 PB, projetado para 12 PB no Q3 2009 • Cluster de Teste • 800 cores, 16GB cada
  • 12. Uso de Hardware Comum Tipicamente em 2 níveis – Nós são PCs comuns – 30-40 nodes/rack – Rack em Uplink de 3-4 gigabit – Rack-interno de 1 gigabit
  • 13. HDFS • Inspirado em GFS • Projetado para trabalhar com arquivos muito grandes • Executado em hardware commodity • Streaming de acesso a dados • Replicação e localidade
  • 14. HDFS • Projetado para escalar a petabytes de armazenamento, e correr em cima dos sistemas de arquivos do sistema operacional subjacente. • “NameNode” - Master – Gerencia o sistema de arquivos namespace Conhece todos os blocos de localização – lida com a replicação, exclusão, criação • “DataNode” - Slave (workers) – Manter os blocos de dados – Relatório de volta para namenode suas listas de blocos periodicamente – lida com a recuperação de dados
  • 15. HDFS - Duplicação • Dados de entrada é copiado para HDFS é dividido em blocos • Cada blocos de dados é replicado para várias máquinas
  • 16. HDFS – Hadoop FileSystem • Sistema de Arquivos Distribuído para grande Volumes – 10K nodes, 100 milhões de arquivos, 10 PB • Hardware Comum (comodite) – Os arquivos são replicados esperando falha de hardware – Detecção de falhas e recuperação • Otimizado para Batch Processing – Os dados ficam expostos, a computação pode ser movida onde os dados estiverem • Roda em diversos OS (win, linux, mac)
  • 17. HDFS - MapReduce Data Flow
  • 19. Modos de Operação • Standalone • Pseudo-distributed • Fully-distributed
  • 20. O que é Map Reduce • MapReduce é um modelo de programação e implementação associados para o processamento e geração de grandes conjuntos de dados (Jeffrey Dean e Sanjay Ghemawat, 2004) – A ideia tem mais de 40 anos – Baseado em um modelo de programação funcional (como Lisp, Ml, etc) – Processamento de dados base em batch – A abstração limpa para programadores – Paralelização automática e distribuição – Tolerância a falhas
  • 21. MapReduce x Hadoop MapReduce Hadoop Org Google Yahoo/Apache Impl C++ Java Distributed File Sys GFS HDFS Data Base Bigtable HBase Distributed lock mgr Chubby ZooKeeper
  • 22. MapReduce – Função Map • Input: – Registros de alguma fonte de dados (por exemplo, linhas de arquivos, linhas de um banco de dados, ...) estão associados no par (chave, valor) • Output: – Um ou mais valores intermediários no formato (chave, valor) • Exemplo: (palavra, numero_de_ocorrencias)
  • 24. Exemplo – Função Map map (k, v): if (isPrime(v)) then emit (k, v) (“foo”, 7) (“foo”, 7) (“test, 10) (nothing)
  • 25. MapReduce – Função Reduce Depois que a fase de mapeamento terminar, todos os valores intermediários vão para uma chave de saída, estes são combinadas em uma lista • Input – Valores Intermediários : – Example: (“A”, [42, 100, 312]) • Output – Normalmente, apenas um valor final por chave – Exemplo (“a”, 454)
  • 27. Exemplo – Função Reduce reduce (k, vals): sum = 0 foreach int v in vals: sum += v emit (k, sum) (“A”, [42, 100, 312]) (“A”, 454) (“B”, [12, 6, -2]) (“B”, 16)
  • 28. MapReduce - Terminologia • Job: unidade de trabalho que o cliente quer ser realizados – Dados de entrada + programa MapReduce + configuração da informação • Task: parte do trabalho – Mapa e reduzir tarefas • Jobtracker: nó que coordena todos os trabalhos na sistema de agendamento de tarefas para rodar em tasktrackers. • TaskTracker: nós que executar tarefas e enviar o progresso ao jobtracker
  • 30. Exemplo Real map (String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1");
  • 31. Reduce reduce(String key, Iterator values): // key: a palavra // values: a lista de valores int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));
  • 32. Map/Reduce Cluster Input files M map tasks Intermediate files R reduce tasks split 0 split 1 split 2 split 3 split 4 Vários Map ou Reduce podem ser executados em um único computador Output files Output 0 Output 1 Cada arquivo intermediário é dividido em partições R, pela função de particionamento Cada tarefa reduce corresponde uma partição
  • 35. Exemplo Java - Mapper
  • 38. Passo a Passo • Os passos básicos para a execução de um trabalho Hadoop são: – Compile o seu trabalho em um arquivo JAR – Copiar dados de entrada no HDFS – Execute hadoop passando para o AJR os parametros relevantes – Monitorar tarefas via interface Web (opcional) – Examinar a saída quando o trabalho estiver completo
  • 39. Exemplo hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100 hadoop fs -mkdir input hadoop fs -put /etc/hadoop-0.20/conf/*.xml input hadoop-0.20 fs -ls input hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep input output 'dfs[a-z.]+' hadoop-0.20 fs -mkdir inputwords hadoop-0.20 fs -put /etc/hadoop-0.20/conf/*.xml inputwords hadoop-0.20 fs -ls inputwords hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep inputwords outputwords 'dfs[a-z.]+'
  • 40. Obrigado • • • • Alessandro de Oliveira Binhara binhara@gmail.com binahra@azuris.com.br www.facebook.com/azuriscompany